OpenCV 采集图片与视频

OpenCV 采集图片与视频

温馨提示:本文最后更新于2025-06-11 19:53:59,某些文章具有时效性,若有错误或已失效,请在下方留言

采集图片

# 通过OpenCV采集图片
import cv2

def capture_image():
    # 创建一个VideoCapture对象,参数0表示使用默认摄像头
    cap = cv2.VideoCapture(0)
    # 检查摄像头是否成功打开
    while cap.isOpened():
        # 预热,丢弃前10帧,避免获取的第一帧为纯黑色的问题
        for _ in range(10):
            cap.read()
        # 读取摄像头的一帧
        ret, frame = cap.read()
        # 如果成功读取到帧, 保存为图片
        if ret:
            # 将数据帧保存为图片文件
            cv2.imwrite('captured_image.jpg', frame)
            break
    # 释放摄像头资源
    cap.release()

# 调用函数进行图片采集
capture_image()

采集到的图像,如下所示

captured image
captured image

采集视频

import cv2

def capture_video():
    # 创建一个VideoCapture对象,参数0表示使用默认摄像头
    cap = cv2.VideoCapture(0)
    # 设置视频编码格式和输出文件名

    # 获取摄像头的分辨率
    frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
    frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

    # 使用avc1编码格式
    fourcc = cv2.VideoWriter_fourcc(*'avc1')
    # 创建VideoWriter对象,参数为输出文件名、编码格式、帧率和分辨率
    # 分辨率不是随便设置的,必须与摄像头的分辨率一致
    out = cv2.VideoWriter('./output.mp4', fourcc, 30.0, (frame_width, frame_height))

    i = 0
    # 检查摄像头是否成功打开
    while cap.isOpened():
        ret, frame = cap.read()
        if ret:
            if i <= 120:
                out.write(frame)
            else:
                break
            i += 1
        else:
            print('视频采集失败')
            break

    # 释放资源
    cap.release()
    out.release()

# 调用函数进行视频采集
capture_video()

注意:分辨率不是随便设置的,必须与摄像头的分辨率一致

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容