python - 捕获单帧 OpenCV-Python

下午好,我有一个关于使用 OpenCV 捕获单个图像的问题,因为我看到的大多数视频捕获代码都会获得很多帧,直到它们停止,但我只对一个感兴趣,就好像我们正在拍照一样。我附上了我一直在审查的代码,感谢您的建议。

import cv2

# Opens the Video file
cap= cv2.VideoCapture('C:/New/Videos/Play.mp4')
i=0
while(cap.isOpened()):
    ret, frame = cap.read()
    if ret == False:
        break
    cv2.imwrite('kang'+str(i)+'.jpg',frame)
    i+=1

cap.release()
cv2.destroyAllWindows()

回答1

您应该能够通过 pyautogui 使用函数,例如 screenshot。在我看来,这更容易。 PYAutoGUI 也内置了一些 OPEN-CV。

例子:

import pyautogui
screenshot = pyautogui.screenshot()
screenshot.save(r'currentscreenshot.jpg')

希望这会有所帮助! (编辑您可能需要也可能不需要安装枕头,如果需要,请运行 pip install pillow。)