特大尺寸圖片(26258*13277),用OpenCV的cvSaveImage()函式存盤,總是報錯存盤空間不夠。有什么解決辦法?
uj5u.com熱心網友回復:
單機處理大尺寸資料唯一的辦法是分塊處理。程式在跑之前你需要簡單算一下空間復雜度,1045882404b = 997MB,說明你的程式試圖一次申請這么多記憶體,但是系統提供不了。1. 換太記憶體更大的機器跑。2. 修改程式,改成分塊處理。類似tile處理。當然,能不能分塊本身取決于演算法,絕大多數演算法是可以分塊實作的,并不要求所有的資料同時存在于記憶體中。能否實作,取決于撰寫者能力。另一種記憶體不夠并不是由于待處理資料大,而是中間變數消耗大量記憶體。需要針對性地處理。總之一句話,用現成的軟體,記憶體不夠換電腦;自己寫的程式,記憶體不夠改演算法。無非就是在空間和時間兩種資源的權衡。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/271026.html
標籤:Qualcomm開發
下一篇:求QT3.3.8的中文教程
