cvtColor断言失败(OpenCV with C++)

The*_*tMe 4 c++ opencv

我有一个

cv::Mat image;
Run Code Online (Sandbox Code Playgroud)

对象,我从一个文件加载图像,它正确读取它和所有.

现在我编写了一个函数将其转换为灰色.

cv::cvtColor(image, image, CV_RGB2GRAY);
Run Code Online (Sandbox Code Playgroud)

这个错误出现了:

OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /build/buildd/opencv-2.3.1/modules/imgproc/src/color.cpp, line 2834
terminate called after throwing an instance of 'cv::Exception'
  what():  /build/buildd/opencv-2.3.1/modules/imgproc/src/color.cpp:2834: error: (-215) scn == 3 || scn == 4 in function cvtColor
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?

这是我读取图像的方式(通过具有成员cv :: Mat m_image的imagehandler类)

imagehandler::imagehandler(const std::string& fileName)
: m_image(imread(fileName, CV_LOAD_IMAGE_COLOR))
{
        if(!m_image.data)
{
    cout << "Failed loading " << fileName << endl;
}

}
Run Code Online (Sandbox Code Playgroud)

Sas*_*ssa 6

尝试使用不同的dst图像:

cv::Mat grayImage;
cv::cvtColor(image, grayImage, CV_RGB2GRAY);
Run Code Online (Sandbox Code Playgroud)