【发布时间】:2014-08-08 22:06:07
【问题描述】:
我有一个大约 1600 行的程序,它读取图像(tiff 或 raw),执行一大堆不同的数学和统计分析,然后在最后输出图形和数据表。
我几乎三分之二的处理时间是由于在以下代码上循环了 16 次:
h = figure('Visible','off','units','normalized','outerposition',[0 0 1 1]);
set(h,'PaperPositionMode','auto');
imagesc(picdata); colormap(hot);
imgtmp = hardcopy(h,'-dzbuffer','-r0');
imwrite(imgtmp,hot,'picname.png');
当然,'picname.png' 和 picdata 每次都在变化。
有没有更好的方法来隐形绘制和保存这些图片?处理时间主要发生在 imwrite 内部,其次是硬拷贝。图片的全部目的只是为了大致了解数据的外观;我不需要将它们加载回 Matlab 来进行任何类型的未来处理。
【问题讨论】:
-
this question 下面是关于您的问题的讨论。问题本身+答案可能也很有用!
-
嗯,这些绝对是很好的建议,但对我不起作用。我无法抑制 all 我的数字,因为最后应该弹出几个,我不在 UNIX 平台上,而且我没有并行计算工具箱,所以我不能使用
parfor。 -
将数据通过管道传送到单独的 Java 程序。
-
您是否尝试过将图像直接写入索引图像(picdata + 颜色图)而不是通过硬拷贝?
-
我该怎么做?我可以试一试。
标签: image performance matlab plot save