wangshujun的个人空间 https://bbs.21ic.com/?62556 [收藏] [复制] [RSS]

日志

第三天,读取图片

已有 5466 次阅读2020-2-15 22:35 |个人分类:opencv项目|系统分类:视频音频

打开摄像头,并获取到一个图片,然后循环显示出来。
python的基本语法:
1、#是注释的开始,相当于c里面的双斜杠
2、三引号包裹的是注释,相当于c里面的/*   */组合
3、严格依赖缩进作为程序的层次,同一层次的代码必须缩进相同,可以理解为{}组合

摄像头是这样的:
我只是拿来用,不卖的,不要找我问更多细节。
代码如下:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
import cv2
#导入opencv

cap = cv2.VideoCapture(1)
#声明用第几个摄像头来获取数据,默认通常是0,我的电脑上0是笔记本自带的摄像头,1是外接的摄像头

cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M','J','P','G'))
#设置MJPG格式采集数据,因为有一次有损压缩图像质量会降低
#如果不声明则是YUV,因为没有压缩高分辨率的时候响应极慢

cap.set(cv2.CAP_PROP_FRAME_WIDTH,2048)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT,1536)
#一般笔记本的内置摄像头可以支持到1280×720分辨率
#有的摄像头会自动设置最接近的可用分辨率,有的不能

cap.set(cv2.CAP_PROP_SETTINGS, 0)
#打开摄像头的控制面板,不管设置参数是什么都会自动打开,程序中没找到如何关掉

cap.set(cv2.CAP_PROP_FOCUS, 42)
#只要设置了这个参数,就不再自动调焦,我这个外置摄像头带自动聚焦功能,默认初始得不到清晰图像,并且不确定什么时候会自动重调
#先用固定焦距方式来快速实现,未来可以读取这个参数,判定目标是否到位。

#cap.set(cv2.CAP_PROP_AUTOFOCUS, 1)
#设置1开启自动调焦,设置0关闭

#cap.set(cv2.CAP_PROP_BACKLIGHT, 4)
#猜测为背光灯,但是没作用

#cap.set(cv2.CAP_PROP_AUTO_EXPOSURE,0)
#猜测是自动曝光控制,在我的硬件上无效

#cap.set(cv2.CAP_PROP_EXPOSURE,-7)
#曝光补偿控制,我的摄像头只支持0到-7,数字越小越暗,这个没找到重新变成自动的参数


while 1:
    #死循环
    
    ret, frame = cap.read()
    #读取1副图片
    
    cv2.imshow("cap", frame)
    #显示这个图片
    
    if cv2.waitKey(10) & 0xff == ord('q'):
        break
    #遇到q键退出程序,用关闭按钮也很方便
    
cap.release()
cv2.destroyAllWindows()


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)