📜  ret, img_frame = cap.read() (1)

📅  最后修改于: 2023-12-03 14:47:04.874000             🧑  作者: Mango

cap.read()方法介绍

cap.read() 方法是 OpenCV 中读取视频或摄像头的主要方法之一,它可以读取视频数据或者从摄像头捕获数据,并且每次调用该方法都会获取下一帧的数据。当视频或摄像头中的所有帧都被读取时,它将放回False,以指示已经到达视频文件末尾或摄像头停止读取数据。

语法
ret, img_frame = cap.read()
参数说明
  • ret: 表示是否成功读取到图像,如果成功读取到则返回 True,否则返回 False。
  • img_frame: 表示读取到的图像帧数据。
返回值

该方法返回 ret 和 img_frame 两个参数。

在成功读取到图像时,ret 的值为 True,并且 img_frame 的值为读取到的图像帧数据。如果无法读取到图像,则 ret 的值为 False,img_frame 的值为None。

使用示例
import cv2

cap = cv2.VideoCapture(0)

while True:
    # 读取每一帧
    ret, img_frame = cap.read()

    if ret:
        # 显示图像
        cv2.imshow("Video", img_frame)

        # 按下 q 键退出录像
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

# 释放摄像头
cap.release()

# 关闭窗口
cv2.destroyAllWindows()

在以上示例中,我们首先使用 cv2.VideoCapture() 方法获取摄像头并打开。接下来在 while 循环中,每次通过 cap.read() 方法读取摄像头的一帧。成功读取到图像时,我们将图像通过 cv2.imshow() 方法显示出来。当用户按下键盘上的 q 键时,我们通过 break 语句退出循环,结束录制。

最后,我们调用 cap.release() 释放摄像头资源,同时使用 cv2.destroyAllWindows() 关闭显示窗口。