關於cvLoadImage 的洩露問題

2021-06-08 22:15:51 字數 614 閱讀 5714

以前在用opencv程式設計的時候,從來沒有考慮問題可能出自於opencv的函式,但是這次我確實碰到了

在這次的程式設計過程中,需要匯入影象序列,並不斷的處理,結果在編譯沒有任何問題,執行結果也正確的情況下,程式的記憶體不斷增加,速度還不慢,於是不斷的查詢

記憶體洩露的原因,結果在迴圈體中沒有任何記憶體分配操作,於是定位到該函式了,從網上找到了相應的結案!  以下方法經過驗證,解決了cvloadimage的洩露問題

具體解決方法為:

使用cvvimage類進行替換,首先定義乙個 cvvimage cwimage變數,並通過cwimage.load("檔案所在路徑")

同時,定義乙個iplimage *psrcimage指標,並通過psrcimage

= cwimage.getimage()獲得對應的影象。

注意,psrcimage不需要使用cvcreateimage, 而且psrcimage獲得的是rgb三通道影象,因此,如果你期望使用灰度影象的話,需要進行轉換!

對於序列影象的處理,為了節省運算,psrcimage 影象不需要進行重複的釋放,可以在迴圈體外部進行定義,最後進行一次釋放就可以。而對應於cwimage,如何採用cwimage.destroy()釋放的話,反而會報錯!

STM SETIMAGE引起的gdi記憶體洩露

最近給程式加了乙個動畫功能後,發現程式會引起及其嚴重的記憶體洩露,找了半天發現是呼叫stm setimage引起的。素以在此將使用stm setimage遇到的問題記錄一下。我的程式將動畫的所有幀提前載入後用定時器迴圈用stm setimage把點陣圖控制代碼傳送到視窗顯示,發現沒顯示一次就洩露好幾...

由std ostrstream引發的記憶體洩露問題

最近自己用boost asio庫寫網路伺服器端的程式,在一小段 中用了如下的語句。std string foo 在模擬客戶端訪問伺服器程式的時候,發現程序使用的記憶體隨著客戶端鏈結成線性增長趨勢,configue make sudo make install 之後,輸入命令 valgrind lea...

xctf中的Lottery( git原始碼洩露)

這道題先用敏感檔案洩露工具掃到了.git檔案洩露,於是用githack將檔案還原進行 審計。漏洞處在api.php這個檔案 function buy req switch same count money prize 2 session money money response status ok ...