将点添加到视频序列后,如何找到视频中覆盖像素的区域?

时间:2019-04-26 16:12:16

标签: python video computer-vision

我有一个拥挤场景的视频及其黑白像素的蒙版图像。首先,这是视频序列中的帧。

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)

但是每次它在地面真实视频和下一个groundtruthvideo中显示相同数量的像素时,我们都将像素添加为黑色像素。

如何通过轨迹坐标找到与地面真实视频重叠的像素数?

enter image description here

0 个答案:

没有答案