python+opencv调用摄像头

2021/7/20 11:08:08

本文主要是介绍python+opencv调用摄像头,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

import cv2
import numpy as np
 
"""
函数名:cv2.VideoCapture()
功  能:通过摄像头捕获实时图像数据
返回值:有
参数一:摄像头代号,0为默认摄像头,笔记本内建摄像头一般为 0
     或者填写视频名称直接加载本地视频文件
"""
cap = cv2.VideoCapture(0)  # 创建一个 VideoCapture 对象
 
"""
函数名:cap.set( propId , value )
功  能:设置视频参数,设置视频的宽高值和摄像头有关使用笔记本内置摄像头时只能设置为 1280*720 以及 640*480,
    哪怕设置值不同时都会自动校正过来,并且仍然返回 True
返回值:布尔值
参数一:需要设置的视频参数
参数二:设置的参数值
cap.get(propId)
3 视频宽
4 视频高
5 帧率
10-15 图像亮度 对比度 饱和度 色调 增益 曝光
"""

# 定义编码器并创建 VideoWriter 对象
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, cap.get(5), (int(cap.get(3)),int(cap.get(4))))

 
flag = 1  # 设置一个标志,用来输出视频信息
"""
函数名:cv2.isOpened()
功  能:返回一个布尔值( True / False ),检查是否初始化成功,成功返回 True
返回值:布尔值
"""
while(cap.isOpened()):  # 循环读取每一帧
    """
    函数名:cap.read()
    功  能:返回两个值
         先返回一个布尔值,如果视频读取正确,则为 True,如果错误,则为 False,也可用来判断是否到视频末尾
         再返回一个值,为每一帧的图像,该值是一个三维矩阵
         通用接收方法为:
         ret,frame = cap.read();
        这样 ret 存储布尔值,frame 存储图像
        若使用一个变量来接收两个值,如
        frame = cap.read()
        则 frame 为一个元组,原来使用 frame 处需更改为 frame[1]
    返回值:R1:布尔值
        R2:图像的三维矩阵
    """
    ret, frame = cap.read()
    # gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    # cv2.imshow("Gray", gray)

    frame = cv2.flip(frame, 1) # 写入翻转的帧 1左右翻转0上下翻转      
    out.write(frame)
 
    cv2.imshow("Capture_Test", frame)  # 窗口显示,显示名为 Capture_Test
 
    k = cv2.waitKey(1) & 0xFF  # 每帧数据延时 1ms,延时不能为 0,否则读取的结果会是静态帧
    if k == ord('s'):  # 若检测到按键 ‘s’,打印字符串
        """
        函数名:cap.get( propId )
        功  能:查询视频的参数
        返回值:无
        参数一:查询的视频参数,其中部分值可以使用 cap.set() 进行修改       
        print(cap.get(3))
        print(cap.get(4))
        """
         #保存一帧图片
        cv2.imwrite('1.jpg', frame)
       
 
    elif k == ord('q'):  # 若检测到按键 ‘q’,退出       
        break
 
cap.release()  # 释放摄像头
out.release()
cv2.destroyAllWindows()  # 删除建立的全部窗口
        
 



这篇关于python+opencv调用摄像头的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程