最近因为要实现模板匹配,需要在视频中选中一个目标,然后框出(即作为模板),对其利用模板匹配的方法进行检测。于是需要首先选出视频中的一帧,但是在利用摄像头读视频的过程中我唯一能想到的方法就是:
1.在视频播放的过程中,当想选中哪幅图来标记目标时,按下暂停键。
2.框出你想要检测的目标。
那要怎么实现呢?
首先是暂停怎么实现呢?介于是摄像头直播,我们先将那副图像复制并在另一个窗口显示。然后关掉摄像头,就完成了暂停。后面标记完目标再打开摄像头就行了。那具体怎么实现呢...
importcv2
drawing=False
ix, iy= -1, -1tempFlag=Falsedefdraw_circle(event, x, y, flags, param):globalix, iy, drawing, mode, cap, template, tempFlagif event ==cv2.EVENT_LBUTTONDOWN:
tempFlag=True
drawing=True
ix, iy= x, y #按下鼠标左键,用全局变量ix,iy记录下当前坐标点
elif event ==cv2.EVENT_LBUTTONUP:if drawing ==True:
drawing= False #鼠标左键抬起,画出矩形框
cv2.rectangle(frame, (ix, iy), (x, y), (0, 255, 0), 1)
template= frame[iy:y, ix:x, :] #截取框中的目标图像
cap = cv2.VideoCap