2014-10-31 68 views
1

我一直在尋找一個好的和可靠的解決方案,這個問題請幫我 問題是,我使用OpenCV在Android(C++ ndk)創建圖像過濾應用程序,當我連續申請在將位圖轉換爲整數數組並將其傳遞到本地C++函數後,每次調用OpenCV本機C++函數時都會在位圖上進行過濾。 過濾器工作正常,我得到的結果,但當我連續應用他們取決於設備應用程序給OutOfMemory異常時,我將過濾器(整數陣列)的結果再次轉換爲位圖。 在我測試過的不同設備上以及過濾器成功應用的次數不同。 的代碼行中,我得到的例外是Android圖像處理過濾器導致OutOfMemory異常

bmOutImg = Bitmap.createBitmap(bmInImg.getWidth(), bmInImg.getHeight(),Config.ARGB_8888); 

我不想調整圖像以較小的resolutio誰能告訴我確切的代碼解決方案來解決這個問題。我會非常感謝!

+0

我的直覺告訴我整數數組在系統內存不足。也許在你測試過的「其他系統」上有更多可用的RAM或磁盤空間? – 2014-10-31 13:20:02

+1

是的,我測試的設備具有更高的RAM,它仍然崩潰,但我可以連續應用的次數也增加,如果圖像的分辨率更小,應用程序崩潰後應用過濾器連續100次,但我不想縮小位圖降低分辨率。 – Nanites 2014-10-31 13:27:55

回答

1

問題很簡單,我沒有在本地C++代碼中發佈數組。