From 0ce61c655a1a5c838323acd1a705ce117ff37014 Mon Sep 17 00:00:00 2001 From: Askill Date: Tue, 29 Sep 2020 22:52:36 +0200 Subject: [PATCH] added layer id to output --- ContourExctractor.py | 2 +- Exporter.py | 5 +++++ LayerFactory.py | 5 +++-- __pycache__/ContourExctractor.cpython-37.pyc | Bin 3104 -> 3104 bytes __pycache__/Exporter.cpython-37.pyc | Bin 1332 -> 1484 bytes __pycache__/LayerFactory.cpython-37.pyc | Bin 1655 -> 1664 bytes short.mp4 | Bin 22854 -> 22607 bytes 7 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ContourExctractor.py b/ContourExctractor.py index acb3fc9..2299598 100644 --- a/ContourExctractor.py +++ b/ContourExctractor.py @@ -17,7 +17,7 @@ class ContourExtractor: extractedContours = dict() min_area = 200 max_area = 30000 - threashold = 25 + threashold = 35 xDim = 0 yDim = 0 diff --git a/Exporter.py b/Exporter.py index 2b8306a..4936acd 100644 --- a/Exporter.py +++ b/Exporter.py @@ -19,17 +19,22 @@ class Exporter: def exportLayers(self, layers, outputPath): fps = self.fps writer = imageio.get_writer(outputPath, fps=fps) + i=0 for layer in layers: data = layer.data + if len(data) < 10: + continue 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 + cv2.putText(frame1, str(i), (30,30), cv2.FONT_HERSHEY_SIMPLEX, 1,(255,255,255), 2) writer.append_data(np.array(frame1)) #cv2.imshow("changes overlayed", frame) #cv2.waitKey(10) & 0XFF + i += 1 writer.close() #cv2.destroyAllWindows() diff --git a/LayerFactory.py b/LayerFactory.py index 50992a9..4369d27 100644 --- a/LayerFactory.py +++ b/LayerFactory.py @@ -3,7 +3,7 @@ from Layer import Layer class LayerFactory: data = {} layers = [] - tolerance = 10 + tolerance = -10 def __init__(self, data=None): print("LayerFactory constructed") self.data = data @@ -40,11 +40,12 @@ class LayerFactory: print("LayerFactory: Layer knew no bounds") continue - if frameNumber - layer.lastFrame <= 1: + if frameNumber - layer.lastFrame <= 20: (x2,y2,w2,h2) = layer.data[-1][1] if self.contoursOverlay((x-tol,y+h+tol), (x+w+tol,y-tol), (x2,y2+h2), (x2+w2,y2)): foundLayer = True layer.add(frameNumber, (contour, (x,y,w,h))) + break layers[i] = layer if not foundLayer: diff --git a/__pycache__/ContourExctractor.cpython-37.pyc b/__pycache__/ContourExctractor.cpython-37.pyc index 2d4c7b67766aad5901e9c000982b55f6594dd70c..496f1a7424069ed180693d899a19ddb3f8eaff15 100644 GIT binary patch delta 27 hcmZ1=u|R^`iIW@J>}Y|r?R3jkA>23i0B delta 27 hcmZ1=u|R^`iI6rMAW+~?dzDTYW0_{6($;i7d>yHFz)G>R$sCIlx+Z)<5L6G>r)3gXg* zUYA`Y{sY0a;Kr4|;Nl+$_#4zS6=#_5eBXCChr^jK@sA|CDrHRYbPmV;Rq;8S&@4ll z;Jb!z{HuIV8wZLyG5v1gI(hol)oiU`E->5%Z$PnaqE|-k>7flU`_Y9qRJ=)^a2L7Q zB`!rxo5Y1i6g4GOO$9F)@<4^}sFNlvA}dv-Vy|pyrH%21MeM5@TPPK?^f`Rv%708ykz z@~oSK_8ZWEu<&f*+16!_@H#-rNV&~UU7;Esas)YB{PDc?9~Kl@e*9k}zdM~GR9p?r zpkh12-SQJVx8C#~d-m#573@vS=5T5%Ha5CizHz6!+282g>uq!%_Io#P-@Vm&prvoK zV8E}X(ra&>)A%qj?U4RxWvy_&Pc^58z f5RLL1KXcO8RAP7Xa&KSz&(?l=eHNko%~$>c-QIJm delta 386 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 Ap#T5? literal 22854 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