diff --git a/Application/HeatMap.py b/Application/HeatMap.py new file mode 100644 index 0000000..a6f16f7 --- /dev/null +++ b/Application/HeatMap.py @@ -0,0 +1,20 @@ +import numpy as np +from matplotlib import pyplot as plt + +class HeatMap: + def __init__(self, x, y, contours, resizeFactor = 1): + self.imageBW = np.zeros(shape=[y, x, 3], dtype=np.float64) + self._resizeFactor = resizeFactor + self._createImage(contours) + + def _createImage(self, contours): + for contour in contours: + for x, y, w, h in contour: + x, y, w, h = x*self._resizeFactor, y*self._resizeFactor, w*self._resizeFactor, h*self._resizeFactor + self.imageBW[int(y):int(y+h), int(x):int(x+w)] += 1 + + self.imageBW = np.nan_to_num(self.imageBW/ self.imageBW.sum(axis=1)[:, np.newaxis], 0) + + def showImage(self): + plt.imshow(self.imageBW*255) + plt.show() diff --git a/main.py b/main.py index a0c2222..6f2a318 100644 --- a/main.py +++ b/main.py @@ -5,6 +5,7 @@ from Application.Classifiers import * from Application.Config import Config from Application.ContourExctractor import ContourExtractor from Application.Exporter import Exporter +from Application.HeatMap import HeatMap from Application.Importer import Importer from Application.LayerFactory import LayerFactory from Application.LayerManager import LayerManager @@ -37,11 +38,15 @@ def main(): layerManager = LayerManager(config, layers) layerManager.transformLayers() + #layerManager.tagLayers() layers = layerManager.layers if len(layers) == 0: exit(1) + heatmap = HeatMap(1920, 1088, [contour for layer in layers for contour in layer.bounds], 1920/config["resizeWidth"]) + heatmap.showImage() + exporter = Exporter(config) print(f"Exporting {len(contours)} Contours and {len(layers)} Layers") exporter.export(layers, contours, masks, raw=True, overlayed=True) diff --git a/output/heatmap_x23.png b/output/heatmap_x23.png new file mode 100644 index 0000000..572948f Binary files /dev/null and b/output/heatmap_x23.png differ