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()