尝试通过按键输入更改视频帧

时间:2018-11-01 07:35:10

标签: python opencv video-processing

我试图在每个帧上执行裁剪操作,所以我希望循环中的每个帧都保持不变,直到按下某个键为止。代码的循环部分如下所示:

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'键的更改,相反,帧会快速继续,直到我单击并拖动某个点以激活区域部分的选择。

我感觉自己的状态不正确。一定要帮我解决这种情况。

1 个答案:

答案 0 :(得分:2)

此命令仅等待1毫秒,然后继续执行。

key = cv2.waitKey(1) & 0xFF 

尝试将其更改为

key = cv2.waitKey(0) & 0xFF

这应该等到按下某个键(如果有简历窗口)。