在opencv 2.2 中 調用 findContours() 函數 Crash 問題

 

在vc2010中創建的dll中調用findContours()函數,系統崩掉!

 

代碼如下:

       vector<vector<cv::Point> > contours;

       vector<Vec4i> hierarchy;

       findContours(bin, contours, hierarchy,

           CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE );

 

 

分析opencv源代碼,跟蹤測試

進入工程:opencv_imgproc

 發現findContours函數 是調用 _findContours函數來實現的,跟蹤進去,發現contours.resize(total) 就會失敗崩潰,應該是系統DLL調用配置問題,進一步不知道原因了

 

解決方案:

直接將:_findContours( Mat& image, vector<vector<Point> >& contours,

               vector<Vec4i>* hierarchy, int mode, int method, Point offset )

提出來,放到dll中改一個名字,再調用OK了。

 

    呵呵,用了一天時間才解決了問題,開始一直找動態庫配置原因,後面又重新下載源代碼編譯跟蹤分析出問題源頭,先臨時解決了。

    應該還有更好的解決方案,應該是參數傳遞問題,有牛人給些建議

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