編譯opencv程式錯誤除錯集合
持續更新中……
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1,提示:Debug Assertion Failed!
由於除錯可以知道,程式是在這句出錯的:
cvReleaseImage(&img); //釋放影象指標記憶體
所以這個錯誤是指:釋放記憶體是出錯
原因分析:
cvReleaseImage()和cvCreateImage()相對應的。在程式中如果沒有“建立”就不能“釋放”。所以,如果我們使用的指標不是用cvCreateImage()建立的。如果使用cvReleaseImage()就會出現錯誤。
解決方案:
可以使用img= NULL;來釋放記憶體。因為cvReleaseImage()的作用就是將作為引數的那個指標設定為NULL;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2,提示這個警告:Unhandled exception at 0x774F0192 in 1-showimage.exe: Microsoft C++ exception: cv::Exception at memory location 0x005CF97C.
第一種情況分析:
原因分析:使用inshow 函數出現opencv error assertion failed,錯誤的原因是因為我在配置環境的時候漏了lib檔案。
解決方案:重新在屬性框中配置附加依賴項。
第二種情況分析:
原因分析:我使用cvLoadImage()函式載入一副影象(例:IplImage * src = cvLoadImage(“baboon.jpg”);),而影象對應的路徑是錯誤的,源程式下的影象名是:楪析.jpg,而我寫的的是baboon.jpg,這就所以影象載入錯誤導致了VS報這個錯誤。
解決方案:把影象地址改過來就好了。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
待續……