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