opencv常見問題(1)Microsoft C++ 異常:cv::Exception

今天,在寫程序的時候,突然報了個錯誤:
錯誤截圖
想必大家遇到錯誤第一反應都是問度娘!
於是乎,我順手百度了一下,果然,遇到與此類似的問題還真不少。
0x76BBA932 處(位於 OpenCV.exe 中)有未經處理的異常: Microsoft C++ 異常: cv::Exception,位於內存位置 0x00AEEF48 處。
但是,和我一樣的問題卻出現在不同的程序中,這就奇怪了。

首要任務
:檢查環境配置,當然,我這裏不多說,我是win10+vs2015
看了一下,重點檢查連接器那部分,並沒有錯誤,後來一想,我前面程序運行的沒毛病,也沒調用什麼東東,環境變量不會自己修改的呀!

第二步
:有關圖片路徑問題
各種用”/”,不能用“\”之類的,那就改吧,動手改了一下,沒解決,誒呀,這個之前讀的也沒問題,這個是會引起類似的問題,但是我把圖片放在工程裏,用的不是絕對路徑,所以不影響。

第三步
:圖片格式
這個問題是說可能把格式寫成了”XXX.png.png”就是本身已經有擴展名了,但是隱藏了,結果你又手動添加了一次,把它當作了文件名,這種錯誤絕對不可能。
百思不得其解,內存問題,是存儲格式嗎?
寫了這麼多沒貼代碼,證明這個問題不是由於代碼本身造成的。

可是
無解就得從代碼看起了。
各種設斷點,加imshow。最後發現我出錯的代碼行。
現在來說一下我出問題的那句代碼,很簡單的一句
imageROI = a(Rect(200,200, image.cols, image.rows));
這樣看,沒毛病。

再看看
rect函數到底怎麼了。
猛然發現:
矩形左上角座標設置的過大,導致內存出問題!
把200改成0,結果問題解決了。

欸:
不要總是寄希望於百度,具體問題還得具體分析!
有同樣問題的你,是不是該用心看一下,你們使用的函數參數設置對了嗎?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章