Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在OpenCV中标准化相机输入?(对比度/饱和度/亮度等)_Python_Image Processing_Opencv_Camera - Fatal编程技术网

Python 在OpenCV中标准化相机输入?(对比度/饱和度/亮度等)

Python 在OpenCV中标准化相机输入?(对比度/饱和度/亮度等),python,image-processing,opencv,camera,Python,Image Processing,Opencv,Camera,我正在使用OpenCV构建一个应用程序,它使用网络摄像头并运行一些视觉算法。我想在完成后在互联网上发布这个应用程序,但我担心每台计算机上的摄像头设置都存在巨大差异,我担心如果设置与我的设置差异太大,算法可能会崩溃 捕获帧后,有没有办法对其进行后期处理,确保对比度为X,亮度为Y,饱和度为Z?我认为不能直接使用当前的OpenCV Python绑定从代码更改相机设置本身 有谁能告诉我如何从图像中计算这些参数,并使用OpenCV对其进行适当调整吗?您可以通过几种方式对图像进行后期处理 要设置对比度,可以

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

捕获帧后,有没有办法对其进行后期处理,确保对比度为X,亮度为Y,饱和度为Z?我认为不能直接使用当前的OpenCV Python绑定从代码更改相机设置本身


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

您可以通过几种方式对图像进行后期处理

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


要设置亮度和饱和度,应首先使用将图像转换为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);
//img是一个rgb图像
CVT颜色(img、img、CV_RGB2HSV);
for(int y=0;yheight;y++){
uchar*ptr=(uchar*)(
img->imageData+y*img->widthStep
);
用于(int x=0;xwidth;x++){
ptr[3*x+2]=255;//最大值,
//使用+1表示饱和度,使用+0表示色调
}
}
//转换回显示
CVT颜色(img、img、CV_HSV2RGB);

Hello Rics,你能告诉我一件事吗?我们可以在OpenCV中增加和减少图像的清晰度吗?下面是一个stackoverflow参考,希望能回答你的问题: