opencv之调用摄像头

基础知识

# cap.set(propId, value)
# 设置视频参数: propId - 设置的视频参数, value - 设置的参数值

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

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

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

#cv2.imwrite("test.jpg", img_camera)保存图像

#释放摄像头 cap.release()
#销毁窗口 cv2.destroyAllWindows()

1、代码案例

# coding = utf-8
import cv2
import os
import shutil
def useCamera():
    # 获取摄像头
    capture = cv2.VideoCapture(0)
    capture.set(3, 480)
    while capture.isOpened():
        # 摄像头打开,读取图像
        flag, image = capture.read()
        cv2.imshow("image", image)
        k = cv2.waitKey(1)
        if k == ord('s'):
            cv2.imwrite("test.jpg", image)
        elif k == ord("q"):
            break
    # 释放摄像头
    capture.release()
    # 关闭所有窗口
    cv2.destroyAllWindows()

if __name__ == '__main__':
    useCamera()

完毕!

猜你喜欢

转载自www.cnblogs.com/ywjfx/p/11398773.html