我试图在每个帧上执行裁剪操作,所以我希望循环中的每个帧都保持不变,直到按下某个键为止。代码的循环部分如下所示:
while (True):
# display the image and wait for a keypress
ret, frame = cap.read()
if not ret:
print ('Process completed')
break
clone = frame.copy()
cv2.imshow('frame',frame)
if len(refPt) == 2:
roi = clone[refPt[0][1]:refPt[1][1], refPt[0][0]:refPt[1][0]]
cv2.imshow("ROI", roi)
cv2.imwrite('New folder\\'+str(fileNum)+'.png',roi)
fileNum += 1
refPt.clear()
#cv2.waitKey(0)
key = cv2.waitKey(1) & 0xFF
# if the 'q' key is pressed, exit from loop
if key == ord("q"):
break
#if the 'n' key is pressed, go to next frame
if key == ord("n"):
continue
当视频进入循环中时,它不会停止并等待'n'键的更改,相反,帧会快速继续,直到我单击并拖动某个点以激活区域部分的选择。
我感觉自己的状态不正确。一定要帮我解决这种情况。
答案 0 :(得分:2)
此命令仅等待1毫秒,然后继续执行。
key = cv2.waitKey(1) & 0xFF
尝试将其更改为
key = cv2.waitKey(0) & 0xFF
这应该等到按下某个键(如果有简历窗口)。