2014-06-27 124 views
0

當我嘗試將輸入圖像轉換爲灰度時,出現斷言錯誤。我曾在相同的問題上看過很多帖子,但似乎沒有給出它錯誤的原因。 在下面的代碼中,input是NOT NULL,並且已經從我的驅動器 上的映像「test.jpg」使用imgRead加載。工作與文件opencv cvtColor assertion failed C++

OpenCV的車牌自動識別 :測試 OpenCV的錯誤:

Mat img_gray; 
cvtColor(input, img_gray, CV_BGR2GRAY); 

斷言錯誤斷言失敗(SCN == 3 || SCN == 4)cvtColor,文件/選擇/本地的/ var/MacPorts的/編譯/ _opt_mports_dports_graphics_opencv/OpenCV的/工作/ OpenCV的-2.4.9 /模塊/ imgproc/src目錄/ color.cpp,線路3737 的libC++ abi.dylib:終止叫做拋出異常

的代碼取自https://github.com/MasteringOpenCV/code/blob/master/Chapter5_NumberPlateRecognition/DetectRegions.cpp

檢出線72.

我已經嘗試了多張照片,沒有運氣。任何建議,將不勝感激。 謝謝

+0

沒有斷言信息,我們怎麼可能猜到什麼是錯誤的? – Bull

回答

4

該斷言消息意味着您傳入的圖像不是3或4通道。 例如如果您傳遞一個單通道灰度圖像,它將失敗。

嘗試把在

的std :: CERR < < 「形象CHANS:」 < < image.channels()< <的std :: ENDL;

緊接在cvtColor()之前。我確信它不會輸出3或4.

+0

我假設只有灰度圖像會有一個通道。 – noobie

相關問題