2017-08-10 57 views
2

我正在研究MATLAB中的實時測試軟件。在用戶輸入上,我想從50-200個高分辨率圖像(〜25 MB)中提取一個(或幾個相鄰像素)的值。MATLAB:與幾千(幾千)個大文件相比,許多(百萬)小文件是否存在問題?

我的問題是,總的圖像集是大(〜2000圖像)存儲在RAM中,因此我需要從每個用戶輸入每個50-200的圖像讀取後,當然是方式慢!

所以我正在考慮將圖像拆分成子圖像(〜100x100像素)並分別保存這些圖像。這會使圖像讀取過程足夠快。

有沒有什麼問題我應該注意這種方法?例如,我讀過有關複製許多小文件時遇到問題的人,這會影響到我,即讓圖像讀取速度變慢嗎?

+1

使用[imread]的「'PixelRegion'」選項(https://www.mathworks.com/help/matlab/ref/imread.html),您可以閱讀子圖像。 – rahnema1

+0

謝謝!這使得每個輸入的響應時間從幾分鐘到幾秒,現在已經足夠了! – IsseBisse

回答

0

rahnema1是正確的 - imread(...,'PixelRegion')將會緊固讀取操作。如果對你來說還不夠,即使你的文件沒有碎片化,也可能是考慮某個數據庫的時候了。磁盤操作始終是瓶頸。首先,我們切換到磁盤緩存,然後分配存儲,然後切換到RAID,再過一段時間,我們完成了內存數據庫。您應該選擇哪種訪問速度是合理的。