将彩色图像转换为灰度图像

时间:2015-01-05 13:22:57

标签: c++ opencv image-processing

我正面临着使用c ++在open cv中编写和读取灰度图像的问题。这是我将彩色图像读取为灰度图像并将其写入文件的代码:

cv::Mat source = cv::imread("c:\\users\\selva\\desktop\\newimage.jpg",CV_LOAD_IMAGE_GRAYSCALE);
cv::imwrite("c:\\users\\selva\\desktop\\grayscal.jpg",source);

然后我尝试在新项目中阅读该图像,

cv::Mat gray = cv::imread("c:\\users\\selva\\desktop\\grayscal.jpg",CV_LOAD_IMAGE_UNCHANGED);

但是当我执行此代码时,

std::cout<<gray.channels();控制台中的输出为3.

我正在使用opencv 2.4.7,我尝试使用.png格式,但这没有帮助。

std::cout<<source.channels();的控制台值为1.

如果我的newimage.jpg是灰度图像,我正在阅读,

cv::Mat source = cv::imread("c:\\users\\selva\\desktop\\newimage.jpg",0);
问题是一样的。 我确信我正在加载正确的图像。 请任何人回答为什么会这样。提前谢谢。

0 个答案:

没有答案