我有一个拥挤场景的视频及其黑白像素的蒙版图像。首先,这是视频序列中的帧。
下面是图像的地面真相掩盖图像。
首先,计算白色像素的数量(只有自行车显示为白色像素):
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中显示相同数量的像素时,我们都将像素添加为黑色像素。
如何通过轨迹坐标找到与地面真实视频重叠的像素数?