У меня есть видео с переполненными сценами и замаскированное изображение черно-белых пикселей. Во-первых, вот кадр из видео последовательности.

Над изображением, изображенным на поверхности земли, изображено следующее:

Сначала подсчитывается количество белых пикселей (в качестве белых пикселей отображается только велосипед):
ret_gt,frame_gt=cap_pixel_level_gt.read()
cp_frame_gt = deepcopy((frame_gt[:, :, 0] > 200).astype(int))
numberOfPixelsBefore=np.count_nonzero(cp_frame_gt)
Это дает количество белых пикселей в каждом кадре. Пример:
0
0
0
0
496
496
606
609
609
Для общей длины 180 кадров, это дает количество белых пикселей. После применения алгоритма велосипед в оригинальном видео отмечены красными точками. Вот кадр с выходными траекториями. Теперь мне нужно найти количество красных пикселей в каждом кадре изображения видеопоследовательности. Для этого я делаю как:
cv2.circle(frame_gt,(int(TrajData[ind][0][1]), int(TrajData[ind][0][2])), 4, (0, 0, 0), -1)
cp_frame_gt = deepcopy((frame_gt[:, :, 0] > 200).astype(int))
frame_gt - это обычное видео (замаскированное), а TrajData дает координаты точек, для которых пиксели должны быть выделены красным.
После добавления траекторий, указывающих на правдивое видео, мне нужно найти количество пикселей с ненулевым значением.
numberOfPixelsAfter=np.count_nonzero(cp_frame_gt)
Но каждый раз он показывает одинаковое количество пикселей в видео с истинной землей и в следующем наземном видео, где мы добавляем пиксели в виде черных пикселей.
Как найти количество пикселей, которые перекрываются с наземным видео истинности координатой траектории?
