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