diff --git a/Application/ContourExctractor.py b/Application/ContourExctractor.py index da35e1b..ed2f2c7 100644 --- a/Application/ContourExctractor.py +++ b/Application/ContourExctractor.py @@ -86,9 +86,9 @@ class ContourExtractor: averageFrames = self.config["averageFrames"] if frames[0][0] < averageFrames: frame = frames[0][1] + frame = self.prepareFrame(frame) for j in range(0, len(frames)): - frameNumber, _ = frames[j] - frame = imutils.resize(frame, width=self.resizeWidth) + frameNumber, _ = frames[j] self.averages[frameNumber] = frame # put last x frames into a buffer self.lastFrames = frames[-averageFrames:] @@ -101,14 +101,17 @@ class ContourExtractor: with ThreadPool(16) as pool: pool.map(self.averageDaFrames, tmp) + self.lastFrames = frames[-averageFrames:] + def averageDaFrames(self, dat): j, frames, averageFrames = dat frameNumber, frame = frames[j] - frame = imutils.resize(frame, width=self.resizeWidth) + frame = self.prepareFrame(frame) + avg = frame/averageFrames for jj in reversed(range(averageFrames-1)): - avg += imutils.resize(frames[j-jj][1], width=self.resizeWidth)/averageFrames + avg += self.prepareFrame(frames[j-jj][1])/averageFrames self.averages[frameNumber] = np.array(np.round(avg), dtype=np.uint8) def getContours(self, data): @@ -116,7 +119,7 @@ class ContourExtractor: while frameCount not in self.averages: time.sleep(0.1) firstFrame = self.averages.pop(frameCount, None) - firstFrame = self.prepareFrame(firstFrame) + #firstFrame = self.prepareFrame(firstFrame) if frameCount % (60*30) == 0: print(f"{frameCount/(60*30)} Minutes processed in {round((time.time() - self.start), 2)} each") self.start = time.time() diff --git a/Application/LayerFactory.py b/Application/LayerFactory.py index 868faf5..088d558 100644 --- a/Application/LayerFactory.py +++ b/Application/LayerFactory.py @@ -84,13 +84,13 @@ class LayerFactory: print(f"{int(round(frameNumber/max(data.keys()), 2)*100)}% done with Layer extraction") tmp = [[frameNumber, contour] for contour in contours] - #pool.map_async(self.getLayers, tmp) - for x in tmp: - self.getLayers(x) + pool.map(self.getLayers, tmp) + #for x in tmp: + #self.getLayers(x) self.freeMin() self.sortLayers() - self.cleanLayers() + #self.cleanLayers() self.freeMax() diff --git a/output/short.txt b/output/short.txt index 4eab116..16f8635 100644 Binary files a/output/short.txt and b/output/short.txt differ