我从PNG文件加载24位RGB图像到我的OpenCV应用程序中。OpenCV图像从RGB转换为灰度使用imread给出差的结果
但是直接使用imread
直接将图像加载为灰度会产生非常差的结果。
Mat src1 = imread(inputImageFilename1.c_str(), 0);
将RGB图像加载为RGB并将其转换为灰度可获得更好的效果。
Mat src1 = imread(inputImageFilename1.c_str(), 1);
cvtColor(src1, src1Gray, CV_RGB2GRAY);
我想知道我是否正确使用imread
作为我的图像类型。有没有人遇到类似的行为?
的影像转换成使用imread
灰度如下所示:
的影像转换成使用cvtColor
灰度如下所示:
OpenCV中的“彩色”图像表示BGR。所以你的代码的第二个版本是不正确的。它应该使用'CV_BGR2GRAY'进行颜色转换。 –
感谢您的评论。我试图使用CV_BGR2GRAY而不是CV_RGB2GRAY将图像转换为灰度,但得到了相同的结果。 – tisch
你能否附上你的原始图像? –