1. 程式人生 > >編譯opencv程式錯誤除錯集合

編譯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報這個錯誤。
解決方案:把影象地址改過來就好了。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

待續……