Как найти область покрытого пикселя в видео после добавления точек к видео последовательности? - PullRequest
1 голос
/ 26 апреля 2019

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

enter image description here

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

enter image description here

Сначала подсчитывается количество белых пикселей (в качестве белых пикселей отображается только велосипед):

    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)

Но каждый раз он показывает одинаковое количество пикселей в видео с истинной землей и в следующем наземном видео, где мы добавляем пиксели в виде черных пикселей.

Как найти количество пикселей, которые перекрываются с наземным видео истинности координатой траектории?

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...