我正面临着使用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);
问题是一样的。
我确信我正在加载正确的图像。
请任何人回答为什么会这样。提前谢谢。