对于一大批bmp图像的后期处理,我目前正在使用mathematica 9中的这个脚本来导入批处理:
Dir = "C:\\...";
SetDirectory[Dir];
Impimg = Import[#] & /@ FileNames["*.bmp"];它确实可以工作,但我可以看到两个问题:
1)首先,它非常慢!
2)其次,所有图像都存储在一个列表中。这消耗了大量的内存,实际上我使用的进程并不需要它,因为这个进程只需要图像本身。
有没有办法克服这两个问题?
丹尼尔
发布于 2014-06-22 11:33:27
要将内存使用量减半,在这种情况下,您可以将$HistoryLength设置为0,这将强制Mathematica不保留Out列表中的数据副本。
为了提高导入速度,您可以将所有图像保存在多页tiff文件中,然后一次导入它们,这要快得多。
$HistoryLength = 0
您也可以使用ParallelMap[]函数,该函数使用多个内核(取决于您的许可证),并且通常更快:
Impimg = ParallelMap[Import[#] &, FileNames["*.bmp"]];
https://stackoverflow.com/questions/23949179
复制相似问题