opencv | 颜色检测时设置了图像的白平衡等参数

我们在初学使用opencv调用摄像头时,经常没有好好注意设置参数的问题。

像我,一般来说只用过设置分辨率的方法;但是今天在进行颜色检测时发生的一些情况,让我对设置摄像头参数重视起来。

需要注意的是,对于摄像头进行设置之后,程序结束不会恢复到默认状态(如果没有在程序结束时写明“开启自动白平衡”等)。

白平衡

 可以看出,色调偏红,并且是逐渐变红的。

这是因为当一个很绿绿得发光的物体出现在图像中,自动白平衡尝试通过调整图像的色温和色调来消除色偏,导致图像变得偏红色了。

固定白平衡

cap.set(CAP_PROP_AUTO_WB, 0);
cap.set(CAP_PROP_WB_TEMPERATURE, 6500);

看到图像有些偏绿,但这只是因为我的参数没有设好;但观察其自动调整曝光等其他未固定参数的过程,可以看出色温色调确实没有发生变化。

饱和度

调整饱和度。 在进行颜色识别任务时,调整饱和度或许可以起到作用,但这不是绝对的,过高的饱和度也有可能使得不同的颜色难以区分。

cap.set(CAP_PROP_SATURATION, 100);

其他参数的修改(部分)

//设置对比度
cap.set(CAP_PROP_CONTRAST, 100);
//设置亮度
cap.set(CAP_PROP_BRIGHTNESS, 100);
//设置曝光
cap.set(CAP_PROP_AUTO_EXPOSURE, 0.25);
cap.set(CAP_PROP_EXPOSURE, 0.25);

一般来说摄像头的自动调整是很有效的,如果不是有特殊的要求,并不建议指定摄像头参数。

猜你喜欢

转载自blog.csdn.net/raw_inputhello/article/details/131597420