insignificant refactor
This commit is contained in:
parent
ec4812bee1
commit
73d1ddc74b
|
|
@ -12,7 +12,8 @@ class Config:
|
|||
"tolerance": 10,
|
||||
"maxLength": None,
|
||||
"ttolerance": 10,
|
||||
"videoBufferLength": 16}
|
||||
"videoBufferLength": 16
|
||||
}
|
||||
|
||||
def __init__(self):
|
||||
print("Current Config:", self.c)
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ class ContourExtractor:
|
|||
while not videoReader.videoEnded():
|
||||
#FrameCount, frame = videoReader.pop()
|
||||
if frameCount % (60*30) == 0:
|
||||
print(f"Minutes processed: {frameCount/(60*30)} in {round((time.time() - start), 2)} each")
|
||||
print(f"{frameCount/(60*30)} Minutes processed in {round((time.time() - start), 2)} each")
|
||||
start = time.time()
|
||||
|
||||
if videoReader.buffer.qsize() == 0:
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ class Exporter:
|
|||
frames = [underlay]*maxLength
|
||||
exportFrame = 0
|
||||
|
||||
|
||||
|
||||
while not videoReader.videoEnded():
|
||||
frameCount, frame = videoReader.pop()
|
||||
if frameCount % (60*self.fps) == 0:
|
||||
|
|
@ -81,11 +81,11 @@ class Exporter:
|
|||
if frame is None:
|
||||
print("ContourExtractor: frame was None")
|
||||
continue
|
||||
|
||||
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
|
||||
for layer in layers:
|
||||
if layer.startFrame <= frameCount and layer.startFrame + len(layer.bounds) > frameCount:
|
||||
for (x, y, w, h) in layer.bounds[frameCount - layer.startFrame]:
|
||||
(x, y, w, h) = layer.bounds[frameCount - layer.startFrame]
|
||||
factor = videoReader.w / self.resizeWidth
|
||||
x = int(x * factor)
|
||||
y = int(y * factor)
|
||||
|
|
@ -95,8 +95,6 @@ class Exporter:
|
|||
frame2 = frames[frameCount - layer.startFrame]
|
||||
frame2[y:y+h, x:x+w] = frame[y:y+h, x:x+w]
|
||||
frames[frameCount - layer.startFrame] = np.copy(frame2)
|
||||
|
||||
|
||||
videoReader.thread.join()
|
||||
|
||||
self.fps = videoReader.getFPS()
|
||||
|
|
|
|||
2
Layer.py
2
Layer.py
|
|
@ -2,7 +2,7 @@ import numpy as np
|
|||
import cv2
|
||||
import imutils
|
||||
class Layer:
|
||||
#bounds = [(contour, (x,y,w,h)),]
|
||||
#bounds = [[(x,y,w,h), ],]
|
||||
|
||||
startFrame = None
|
||||
lastFrame = None
|
||||
|
|
|
|||
|
|
@ -78,10 +78,13 @@ class LayerFactory:
|
|||
if self.contoursOverlay((x-tol,y+h+tol), (x+w+tol,y-tol), (x2,y2+h2), (x2+w2,y2)):
|
||||
self.layers[i].add(frameNumber, (x,y,w,h))
|
||||
foundLayer = True
|
||||
#break
|
||||
break
|
||||
|
||||
if not foundLayer:
|
||||
self.layers.append(Layer(frameNumber, (x,y,w,h)))
|
||||
self.freeData()
|
||||
self.sortLayers()
|
||||
return self.layers
|
||||
|
||||
def contoursOverlay(self, l1, r1, l2, r2):
|
||||
# If one rectangle is on left side of other
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ from Config import Config
|
|||
|
||||
class VideoReader:
|
||||
|
||||
#buffer = [(frameNumber, frame)]
|
||||
|
||||
listOfFrames = None
|
||||
|
||||
def __init__(self, config, setOfFrames = None):
|
||||
|
|
@ -20,6 +20,7 @@ class VideoReader:
|
|||
|
||||
self.videoPath = videoPath
|
||||
self.lastFrame = 0
|
||||
#buffer = Queue([(frameNumber, frame), ])
|
||||
self.buffer = Queue(config["videoBufferLength"])
|
||||
self.vc = cv2.VideoCapture(videoPath)
|
||||
self.stopped = False
|
||||
|
|
@ -81,13 +82,12 @@ class VideoReader:
|
|||
self.vc.set(1, self.listOfFrames[0])
|
||||
self.lastFrame = self.listOfFrames[0]
|
||||
else:
|
||||
sleep(0.5)
|
||||
sleep(0.1)
|
||||
self.stopped = True
|
||||
|
||||
def videoEnded(self):
|
||||
return self.stopped
|
||||
|
||||
|
||||
def getFPS(self):
|
||||
return self.vc.get(cv2.CAP_PROP_FPS)
|
||||
|
||||
|
|
|
|||
7
main.py
7
main.py
|
|
@ -20,11 +20,10 @@ def demo():
|
|||
|
||||
contours = ContourExtractor(config).extractContours()
|
||||
print("Time consumed extracting: ", time.time() - start)
|
||||
layerFactory = LayerFactory(config, contours)
|
||||
layerFactory.freeData()
|
||||
layerFactory.sortLayers()
|
||||
layerFactory = LayerFactory(config)
|
||||
layers = layerFactory.extractLayers(contours)
|
||||
|
||||
Exporter(config).exportOverlayed(layerFactory.layers)
|
||||
Exporter(config).exportOverlayed(layers)
|
||||
print("Total time: ", time.time() - start)
|
||||
|
||||
def init():
|
||||
|
|
|
|||
Loading…
Reference in New Issue