opencv 摄像头偏色问题 自动变亮问题 解决办法
偏色问题原因?
相信很多人使用摄像头的时候发现图片有严重偏色,比如蓝的突然变粉红,黄,白的也变黄等等之类的问题:
如下来自百度百科:
白平衡,字面上的理解是白色的平衡。白平衡是描述显示器中红、绿、蓝三基色混合生成后白色精确度的一项指标。白平衡是电视摄像领域一个非常重要的概念,通过它可以解决色彩还原和色调处理的一系列问题。白平衡是随着电子影像再现色彩真实而产生的,在专业摄像领域白平衡应用的较早。家用电子产品(家用摄像机、数码照相机)中也广泛地使用,然而技术的发展使得白平衡调整变得越来越简单容易,但许多使用者还不甚了解白平衡的工作原理,理解上存在诸多误区。它是实现摄像机图像能精确反映被摄物的色彩状况,有手动白平衡和自动白平衡等方式。许多人在使用数码摄像机拍摄的时候都会遇到这样的问题:在日光灯的房间里拍摄的影像会显得发绿,在室内钨丝灯光下拍摄出来的景物就会偏黄,而在日光阴影处拍摄到的照片则莫名其妙地偏蓝,其原因就在于白平衡的设置上
通过百度百科发现,原来我们的偏色问题原由是设置了自动白平衡,所以关闭就好
那么自动变亮问题呢?
通过摄像头属性的研究,最终锁定在了自动曝光问题上:
如下来自百度百科:
自动曝光是相机根据光线的强弱自动调整曝光量,防止曝光过度或者不足,但是,在场景反差很大的时候会出现误差(比如舞台的场景),光圈优先和快门优先都是自动曝光的范畴,除非很高档的相机,这两种功能不会同时出现在一个相机上,在自动曝光的同时也让你有部分选择的权利,当使用光圈优先的功能时,特别是小光圈时,要注意此时的快门速度会相应的调得很低,端稳相机防止图像不清晰
所以,问题原因已经找到了:
偏色原因--->自动白平衡
自动变亮(暗)--->自动曝光
那么我们如何通过opencv来进行解决这个问题呢?
我们可以通过设置opencv 的 videocapture 里面的 set函数来修改摄像头属性
自动白平衡参数是 CAP_PROP_AUTO_WB 0为关闭自动
自动曝光参数是 CAP_PROP_AUTO_EXPOSURE 0.25为关闭自动,如果0.25不行就用1
所以修改这两个就可以了
以下是我用python写的程序,各位亲们如果用C可以参考一下
# 导入库
import cv2#打开摄像头
cap = cv2.VideoCapture(0)#:摄像头参数设置
#这个是设置摄像头的获取的图片大小,越小 程序从摄像头获取图片的延迟越小(但是越小二维码就越难识别到,自己看着办)
print(cap.set(cv2.CAP_PROP_FRAME_WIDTH , 400)) #设置宽度
print(cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 400)) #设置长度
#关闭白平衡,解决偏色问题
print(cap.set(cv2.CAP_PROP_AUTO_WB,0))
#设置曝光为手动模式
print(cap.set(cv2.CAP_PROP_AUTO_EXPOSURE,1))
#设置曝光的值为0
print(cap.set(cv2.CAP_PROP_EXPOSURE,100))# 循环读取图片
while True:# 读取图片_,frame = cap.read()# 显示图片cv2.imshow("img",frame)# 等待按键key = cv2.waitKey(20)# 按下ESC键if(key == 27):break
上面有5个打印输出,后面三个如果都显示“True”,说明参数设置成功,否则失败。
如果设置失败怎么办???
测试软件链接:《点我下载》,密码8888
这个测试软件可以查看是否可以进行设置,如果发现白平衡和曝光的自动按钮是灰色的,说明不能调节,否则是可以通过代码进行设置的。
如果自动的按钮是灰色的,换一款可以条件的摄像头吧。别白费力气了,如果是灰色的,是无论如何都不能设置的!!!
opencv 摄像头偏色问题 自动变亮问题 解决办法相关推荐
- 除开各种设置自动调节开关,笔记本电脑屏幕亮度自动变亮变暗解决办法
今天笔记本电脑屏幕亮度一直会自动调节,百度了一些办法,各种方法都尝试后,最后才发现一种办法: 前提:已经关闭了自动调节亮度 解决办法:关机,然后再开机,开机之后再去插上电源就可以了.
- Python使用opencv打开笔记本摄像头时遇到的问题及解决办法
Python使用opencv打开笔记本摄像头时遇到的问题及解决办法 最近在学习python,想用opencv做个人脸检测,打开笔记本摄像头时遇到了问题.摄像头总是闪一下就关闭,并提示一行警告([ WA ...
- opencv摄像头闪退问题总结,解决一闪而过的问题
#opencv摄像头闪退问题总结,解决播放视频时一闪而过的问题 总结: 1.视频解码问题 出现这种情况一般是你的电脑里缺少XviD codec(视频编解码器),也就是opencv打开视频之前必须将视频 ...
- win10未开启没有运行无线服务器,win10系统提示共享无线自动配置服务没有自动运行的解决办法...
win10系统提示共享无线自动配置服务没有自动运行的解决办法? win10系统有很多人都喜欢使用,我们操作的过程中常常会碰到win10系统提示共享无线自动配置服务没有自动运行的问题.如果遇到win10 ...
- 服务器虚拟机经常自动断网解决办法
虚拟机经常自动断网解决办法 问题:虚拟机时常出现断网情况,无法远程连接,无法使用 解决方案: 右键网络连接,选择疑难解答,出现如下结果 一.进去控制面板,选择网络和Internet,再选择网络和共享中 ...
- ideapad720s在接通电源情况下,关机后自动重启的解决办法
win10, ideapad720s, 在接通电源情况下,关机后自动重启的解决办法 本文参考:[求助] Win10系统联想U430P笔记本关机后自动重启的解决方法! 步骤1:点击笔记本左下角的&quo ...
- 输入文字时自动带空格解决办法
输入文字时自动带空格解决办法: 把输入法中的全角改为半角,即: 把 改为
- Android Studio 自动更新失败解决办法
Android Studio 自动更新失败解决办法 Dec 26th, 2014 | Comments 昨天在G+中看到Android Studio又有更新了就心血来潮想去更新体验一下,可是无论我怎么 ...
- 电脑无法自动获得ip解决办法(dhcp服务无法启动)
局域网电脑无法自动获得ip解决办法: 一下方法针对电脑设置的问题,一般电脑自动获得ip上网,首先在路由器需要开启DHCP服务(一般都会开启的),然后需要电脑开启dhcp client 服务和dns c ...
- win8计算机无法睡眠,win8系统电脑无法自动睡眠的图文办法win8.1无法自动休眠的解决办法...
win8系统电脑无法自动睡眠的图文办法win8.1无法自动休眠的解决办法? 我们在操作win8系统电脑的时候,常常会遇到win8系统电脑无法自动睡眠的解决方法win8.1无法自动休眠的问题.那么出现w ...
最新文章
- linux iptables规则组成及用法
- zencart 1.5.4 安装问题
- C++编程对缓冲区的理解
- 51 nod 1049 最大子段和 (简单dp)
- 小鑫与斐波那契(一)
- IOC容器特性注入第六篇:利用MVC注入点,把容器启动
- 《深入探索C++对象模型》笔记之第一章关于对象
- c语言定义64位的变量,李洪强-C语言9-C语言的数据,变量和常量
- 计算机控制系统复习提纲,《计算机控制系统》复习要点
- JavaScript数据类型的隐式转换
- pubg显示服务器安装失败,pubg更新错误怎么修复_更新pubg时出现错误的处理方法...
- 【阿朱一帖看尽】2014年BAT到底干了些什么
- 会说话的PPT,从开发者角度十分钟理解区块链
- three.js中正交和透视投影相机的应用
- 交换技术三种重要的交换
- matlab ps液化,已可工作使用的2020系Adobe_Photoshop_2020_21.0.0.37_ACR12.0_SP_20191030
- keil出现蓝色小箭头
- 第十一届中国云计算标准和应用大会 | 华云数据成为全国信标委云计算标准工作组云迁移专题组副组长单位副组长单位
- 接着奏乐接着舞 Matlab制作圣诞树和圣诞快乐歌
- JS遍历(循环)——JS对象遍历(循环)JS数组遍历(循环)