繁体   English   中英

在OpenCV中标准化摄像头输入? (对比度/饱和度/亮度等..)

[英]Standardizing camera input in OpenCV? (Contrast/Saturation/Brightness etc..)

我正在使用OpenCV构建一个应用程序,它使用网络摄像头并运行一些视觉算法。 我想在完成后在互联网上提供此应用程序,但我担心每台计算机上的摄像机设置存在巨大差异,我担心如果设置与我的设置太不相同,算法可能会中断。

在捕获帧后,是否有任何方法对其进行后期处理并确保对比度为X,亮度为Y,饱和度为Z? 我认为无法使用当前的OpenCV Python绑定直接从代码更改Camera设置本身。

有人能告诉我如何从图像中计算出一些这些参数并使用OpenCV进行适当调整吗?

您可以通过多种方式在openCV中处理图像。

要设置对比度,可以使用equalizeHist函数。

要设置亮度和饱和度,首先应使用cvtColor将图像转换为HSV颜色空间。 然后,您可以通过直接访问每个图像像素将饱和度和值(亮度)修改为适当的值。

我有点挣扎着同样的问题。 这是一段代码,它可以从图像中去除所有值(亮度)信息,这使得它在光量变化很大的情况下可能会更加稳定。 您当然可以调整任何其他参数:

    // img is an rgb image
    cvCvtColor(img, img, CV_RGB2HSV);
    for( int y=0; y<img->height; y++ ) {
        uchar* ptr = (uchar*) (
            img->imageData + y * img->widthStep
        );
        for( int x=0; x<img->width; x++ ) {
            ptr[3*x+2] = 255; // maxes the value,
            // use +1 for saturation, +0 for hue
        }
    }

    // convert back for displaying
    cvCvtColor(img, img, CV_HSV2RGB);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM