我正在尝试在Opencv中创建Lpr算法。我正在将图像应用到诸如灰度和佳能之类的图像上。但是我还需要对图像应用饱和度,这就是我的问题:
这是代码(我从此页面http://hasanaga.info/tag/opencv-saturation/中提取了此代码):
void saturation(cv::Mat &img)
{
Mat imagen;
cvtColor(img,imagen,CV_RGB2HSV);
for(int y=0; y<imagen.cols; y++)
{
for(int x=0; x<imagen.rows; x++)
{
int cur2 = imagen.at<Vec3b>(Point(y,x))[1];
cur2 += 41;
if(cur2 < 0) cur2= 0; else if(cur2 > 255) cur2 = 255;
imagen.at<Vec3b>(Point(y,x))[1] = cur2;
}
}
cvtColor(imagen,img,CV_HSV2RGB);
}
(我更改了一些代码,因为我不需要更改其他参数)
但是,当我尝试创建可执行文件时,会发生这种情况:
我可以知道是什么原因引起的错误吗?
最佳答案
通道数或输入图像的深度不正确。
src通道应为3或4,深度应为CV_8U或CV_32F
((scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F))
关于c++ - 尝试在OpenCV上操纵图像的饱和度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27181523/