您当前的位置: 首页 >  opencv

川川菜鸟

暂无认证

  • 2浏览

    0关注

    969博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

opencv视频处理入门

川川菜鸟 发布时间:2022-02-06 13:51:14 ,浏览量:2

文章目录
    • 从相机捕捉视频
    • 从相机捕捉图片

从相机捕捉视频

需要创建一个VideoCapture对象。它的参数可以是设备索引或者一个视频文件名。

import cv2 as cv
cap = cv.VideoCapture(0) #0代表一个摄像头
print(cap.isOpened())

# 声明编码器和创建 VideoWrite 对象
fourcc = cv.VideoWriter_fourcc(*'XVID')
out = cv.VideoWriter('output.mp4',fourcc, 20.0, (640,480))

while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:
        # 写入帧
        out.write(frame)
        cv.imshow('frame',frame)
        if cv.waitKey(0) & 0xFF == ord('q'):
            break
    else:
        break
# 释放已经完成的工作
cap.release()
out.release()
cv.destroyAllWindows()

运行后就会自动保存每一帧合成视频。

cv.VideoCapture(0) 参数0代表一个摄像头,1则两个摄像头,笔记本只有一个摄像头。这里也可以传参视频,不仅仅是摄像头。 cap.read() 返回一个 bool 值(True/False)。如果加载成功,它会返回True。ret: 布尔值; frame: 图像的三维矩阵; 这样 ret 存储布尔值, frame 存储图像。

cap.isOpened() 检查是否初始化。

从相机捕捉图片

按q退出,s保存图片为test.jpg

import cv2

cap = cv2.VideoCapture(0)  #摄像头开启,也可以传入mp4



# 相机的默认帧大小在Windows或Ubuntu中将为640x480

# cap.isOpened() 返回 true/false, 检查摄像头初始化是否成功
print(cap.isOpened())

# cap.read()
""" 
返回两个值
    先返回一个布尔值, 如果视频读取正确, 则为 True, 如果错误, 则为 False; 
    也可用来判断是否到视频末尾;
    
    再返回一个值, 为每一帧的图像, 该值是一个三维矩阵;
    
    通用接收方法为: 
        ret,frame = cap.read();
        ret: 布尔值;
        frame: 图像的三维矩阵;
        这样 ret 存储布尔值, frame 存储图像;
        
        若使用一个变量来接收两个值, 如:
            frame = cap.read()
        则 frame 为一个元组, 原来使用 frame 处需更改为 frame[1]
"""

while cap.isOpened():
    ret_flag, img_camera = cap.read()
    #摄像头图片大小
    # print("height: ", img_camera.shape[0])
    # print("width:  ", img_camera.shape[1])
    # print('\n')

    cv2.imshow("camera", img_camera)

    # 每帧数据延时 1ms, 延时为0, 读取的是静态帧
    k = cv2.waitKey(1)

    # 按下 's' 保存截图
    if k == ord('s'):
        cv2.imwrite("test.jpg", img_camera)

    # 按下 'q' 退出
    if k == ord('q'):
        break

# 释放所有摄像头
cap.release()

# 删除建立的所有窗口
cv2.destroyAllWindows()

关注
打赏
1665165634
查看更多评论
立即登录/注册

微信扫码登录

0.0611s