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,数字越小越暗,这个没找到重新变成自动的参数
cap.release()
cv2.destroyAllWindows()
ref
https://bbs.21ic.com/blog-62556-683410.html