idfk
This commit is contained in:
parent
2d00ffcd1a
commit
2ae7520d2a
|
|
@ -15,7 +15,7 @@ class ContourExtractor:
|
||||||
|
|
||||||
#X = {frame_number: [(contour, (x,y,w,h)), ...], }
|
#X = {frame_number: [(contour, (x,y,w,h)), ...], }
|
||||||
extractedContours = dict()
|
extractedContours = dict()
|
||||||
min_area = 990
|
min_area = 0
|
||||||
max_area = 30000
|
max_area = 30000
|
||||||
threashold = 25
|
threashold = 25
|
||||||
xDim = 0
|
xDim = 0
|
||||||
|
|
|
||||||
23
Exporter.py
23
Exporter.py
|
|
@ -1,5 +1,8 @@
|
||||||
import imageio
|
import imageio
|
||||||
|
import imutils
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
from Layer import Layer
|
||||||
|
import cv2
|
||||||
class Exporter:
|
class Exporter:
|
||||||
fps = 30
|
fps = 30
|
||||||
|
|
||||||
|
|
@ -12,3 +15,23 @@ class Exporter:
|
||||||
for frame in frames:
|
for frame in frames:
|
||||||
writer.append_data(np.array(frame))
|
writer.append_data(np.array(frame))
|
||||||
writer.close()
|
writer.close()
|
||||||
|
|
||||||
|
def exportLayers(self, layers, outputPath):
|
||||||
|
for layer in layers:
|
||||||
|
data = layer.data
|
||||||
|
fps = self.fps
|
||||||
|
writer = imageio.get_writer(outputPath, fps=fps)
|
||||||
|
for frame in data:
|
||||||
|
|
||||||
|
|
||||||
|
(x, y, w, h) = frame[1]
|
||||||
|
frame = frame[0]
|
||||||
|
frame1 = np.zeros(shape=[1080, 1920, 3], dtype=np.uint8)
|
||||||
|
frame1 = imutils.resize(frame1, width=512)
|
||||||
|
frame1[y:y+frame.shape[0], x:x+frame.shape[1]] = frame
|
||||||
|
writer.append_data(np.array(frame1))
|
||||||
|
cv2.imshow("changes overlayed", frame)
|
||||||
|
cv2.waitKey(10) & 0XFF
|
||||||
|
|
||||||
|
writer.close()
|
||||||
|
cv2.destroyAllWindows()
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,10 @@ class LayerFactory:
|
||||||
layers.append(Layer(frameNumber, contour, None))
|
layers.append(Layer(frameNumber, contour, None))
|
||||||
|
|
||||||
for frameNumber, contours in data.items():
|
for frameNumber, contours in data.items():
|
||||||
for layer in layers:
|
layerNum = len(layers)
|
||||||
|
i = 0
|
||||||
|
while i < layerNum:
|
||||||
|
layer = layers[i]
|
||||||
if frameNumber - layer.lastFrame < 5:
|
if frameNumber - layer.lastFrame < 5:
|
||||||
for contour, (x,y,w,h) in contours:
|
for contour, (x,y,w,h) in contours:
|
||||||
if len(layer.data[-1][1]) != 4:
|
if len(layer.data[-1][1]) != 4:
|
||||||
|
|
@ -37,6 +40,8 @@ class LayerFactory:
|
||||||
layer.add(frameNumber, (contour, (x,y,w,h)))
|
layer.add(frameNumber, (contour, (x,y,w,h)))
|
||||||
else:
|
else:
|
||||||
layers.append(Layer(frameNumber, contour, None))
|
layers.append(Layer(frameNumber, contour, None))
|
||||||
|
layerNum = len(layers)
|
||||||
|
i+=1
|
||||||
|
|
||||||
self.layers = layers
|
self.layers = layers
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
5
main.py
5
main.py
|
|
@ -11,7 +11,7 @@ from LayerFactory import LayerFactory
|
||||||
|
|
||||||
def demo():
|
def demo():
|
||||||
print("startup")
|
print("startup")
|
||||||
footagePath = os.path.join(os.path.dirname(__file__), "./generate test footage/out.mp4")
|
footagePath = os.path.join(os.path.dirname(__file__), "./generate test footage/2.mp4")
|
||||||
|
|
||||||
start = time.time()
|
start = time.time()
|
||||||
contourExtractor = ContourExtractor(footagePath)
|
contourExtractor = ContourExtractor(footagePath)
|
||||||
|
|
@ -20,8 +20,9 @@ def demo():
|
||||||
frames = contourExtractor.exportContours()
|
frames = contourExtractor.exportContours()
|
||||||
#Exporter().export(frames,os.path.join(os.path.dirname(__file__), "./short.mp4"))
|
#Exporter().export(frames,os.path.join(os.path.dirname(__file__), "./short.mp4"))
|
||||||
contours = contourExtractor.getextractedContours()
|
contours = contourExtractor.getextractedContours()
|
||||||
layerFactory = LayerFactory(contourExtractor.extractedContours)
|
|
||||||
|
|
||||||
|
layerFactory = LayerFactory(contourExtractor.extractedContours)
|
||||||
|
Exporter().exportLayers(layerFactory.layers, os.path.join(os.path.dirname(__file__), "./short.mp4"))
|
||||||
|
|
||||||
def init():
|
def init():
|
||||||
print("not needed yet")
|
print("not needed yet")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue