4

私は

cv::Mat image;

ファイルから画像をロードしたオブジェクトは、それを正しく読み取ります。

今、私はそれを灰色に変換する関数を書きました。

cv::cvtColor(image, image, CV_RGB2GRAY);

そして、このエラーが発生します:

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

何が問題なのですか?

これは私が画像を読む方法です(メンバー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;
}

}
4

3 に答える 3

6

別の dst イメージを使用してみてください:

cv::Mat grayImage;
cv::cvtColor(image, grayImage, CV_RGB2GRAY);
于 2012-11-20T17:13:46.863 に答える
-1
if(!image.empty()) {
    //your_code
} else
    std::cout<<"Emty "

変換する前にマトリックスを確認してください。

于 2015-03-30T07:16:54.513 に答える