2017-08-10 53 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,再过一段时间,我们完成了内存数据库。您应该选择哪种访问速度是合理的。