2012-11-20 1 views
4

에 실패했습니다.cvtColor 주장은 정확하고 모두를 읽고, 내가 파일에서에 이미지를로드</p> <pre><code>cv::Mat image; </code></pre> <p>목적을 가지고 (C와 OpenCV의 ++)

이제 회색으로 변환하는 함수를 작성했습니다.

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::cvtColor(image, image, CV_RGB2GRAY); 

는 그리고이 오류가 다가와서?

내가 (회원의 이력서가있는 imagehandler 클래스 :: 매트 m_image을 통해) 이미지를 읽는 방법입니다

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

} 
+0

'이미지'를 컬러 이미지로 읽으시겠습니까? – Sassa

+0

어떻게하면됩니까? – TheNotMe

+0

[imread] (http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html?highlight=imread#imread)를 확인하십시오. 코드에서 어떻게 읽습니까? – Sassa

답변

6

다른 DST 이미지를 사용해보십시오 :

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

오류가 사라졌습니다! 그러나 지금 Im는 특정 이미지에이 새로운 이미지를 복사 할 수없는 문제가 있습니다. 내 질문을 편집 할 것입니다 – TheNotMe

0

해보십시오 image.clone을() 대처 이미지

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

변환하기 전에 매트릭스를 확인하십시오.

+0

일반적으로 코드 전용 답변은 피하십시오. 코드를 설명하는 데 도움이되는'description '을 추가하는 것을 고려하십시오. 감사 – MickyD