L’assertion de cvtColor a échoué (OpenCV avec C ++)

j’ai un

cv::Mat image; 

object, que j’ai chargé une image à partir d’un fichier, il la lit correctement et tout.

Maintenant, j’ai écrit une fonction pour la transformer en couleur grise.

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

Et cette erreur revient:

 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 

quel pourrait être le problème?

Voici comment j’ai lu l’image (via une classe imagehandler qui a un membre cv :: Mat m_image)

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

Essayez d’utiliser différentes images dst:

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

Essayez image.clone () pour copier des images

 if(!image.empty()) { //your_code } else std::cout<<"Emty " 

vérifiez la masortingce avant de convertir.