import cv2#导入opencvcap = 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