OpenCV将彩色图像转换为灰度



我正在尝试使用OpenCV 2.4.11 c++ for Visual Studio 2012将彩色图像转换为灰度。我使用以下代码将图像转换为灰度。但是,我无法这样做,因为我无法读取图像。我得到的消息是"读取图像错误",因为img是空的。我已经将所需的图像存储在exe文件旁边的调试文件夹中。我还在属性页的Debug部分中提到了将映像名称作为命令参数。我也在尝试在磁盘中存储灰度图像。提前感谢。代码如下:

#include <stdio.h>
#include <iostream>
#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/nonfree/features2d.hpp"
using namespace cv;

int main(int argc, const char**argv)
{
Mat img=imread("Mountain_8-Bit_Grayscale.jpg", CV_LOAD_IMAGE_GRAYSCALE);
    if(img.empty())
    {
        std::cout<< " --(!) Error reading image " << std::endl;
        system("pause");
        return -2;
    }
    namedWindow("MyWindow", CV_WINDOW_AUTOSIZE); //create a window with the name "MyWindow"
    imshow("MyWindow", img); //display the image which is stored in the 'img' in the "MyWindow" window
    imwrite("image_bw.jpg", img);
    waitKey(0);
    destroyWindow("MyWindow");
    return 0;

}

您应该尝试使用图像的绝对路径,而不是相对路径。其他步骤很好,图像被正确读取,图像显示和保存命令被正确给出,有一个路径问题。

相关内容

  • 没有找到相关文章

最新更新