2012-11-21 164 views
0

我的系統編程課程有作業。 一切都很順利,沒有任何內存泄漏,直到我使用opencv(仍然是初學者)。使用opencv時發生嚴重內存泄漏(opencv和C++)

基本上,我有一個學生課程和課程班,我必須爲正確的課程(選修和PG/CS課程)分配正確類型的學生(計算機科學學生,PG學生..)。

我做了所有我必須做的事情,現在最後一步是顯示誰的畢業彩色圖像和誰沒有畢業的灰度圖像。做完了全部。

我做了處理打開圖像的imagehandler類,保存圖片到文件,初始化新的圖像和類似轉換的所有功能,RGB和轉換爲灰度..

這imagehandler類有圖像的場這是一個:

cv::Mat m_image; 

現在,學生類中,我做了每個學生都有一個imagehandler對象,這是我自己的圖像存儲到它。

我甚至在imagehandler類的析構函數:

imagehandler::~imagehandler(){ 
    m_image.release(); 
} 

之前,我開始用OpenCV的步驟(之前我連裝的OpenCV和嵌入式什麼,我需要在我的代碼做),我沒有內存泄漏在所有。 我編程(和所有工作)的opencv步驟後,我有重大泄漏。

這裏的valgrind的日誌文件(必須把它糊箱,因爲它太大了在這裏): valgrind.log

的誤差主要是,當我讀到的圖像,保存圖像,調整圖像,轉換爲rgb或灰度...所有opencv相關的泄漏。

+0

當你點擊valgrind日誌的鏈接時,它會告訴你錯誤的關鍵。嘗試複製粘貼鏈接!抱歉給你帶來不便! – TheNotMe

+0

不是你不應該試圖解決這個問題,但是如果你所需要做的就是生成你的圖像,然後大概終止程序,那麼對於這個任務來說,內存泄漏是否真的很重要? –

+0

當然,這是一門系統編程課程。一個重要的主題是內存管理,我們被指示正確管理它,我們不應該有任何泄漏。 – TheNotMe

回答

0

我以前遇到過這個問題,並且我通過改變OpenCV的版本來解決這個問題。我現在使用opencv-2.4.13,並且沒有內存泄漏問題。問題版本是opencv-3.0.00。