OpenCV Mat IplImage混用時出現內存出錯可能原因及解決辦法

在使用OpenCV編程時,由於輪廓提取函數在vs2010不兼容,我不得不使用 Mat IplImage混用,在運行函數結束時出現了內存問題。

我在混用時將Mat 和 IplImage互相轉換進行深拷貝時,會用到多次IplImage*,爲了防止內存溢出,我加入了release。本以爲釋放後效果會更好,結果出現了內存問題。

	//Mat轉IplImage
	Mat A;
	IplImage *B = &IplImage(A);
	//深拷貝只要再加一次複製數據:  
	IplImage *C= cvCloneImage(B);

多次嘗試發現,當我release了從Mat淺拷貝出來的IplImage時,會導致函數結束後,Mat自行解構的時候找不到內存位置而報錯。
解決方法:不要釋放淺拷貝製作出來的IplImage,可以釋放深拷貝的IplImage

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