在MATLAB中保存图像的更快的替代方案?

时间:2014-08-08 22:06:07

标签: image performance matlab plot save

我有一个~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以进行任何类型的处理。

1 个答案:

答案 0 :(得分:1)

尝试将数字放在屏幕外(例如,Position = [ - 1000,-1000,500,500])。这将使它成为可见"可见"然而,不需要进行实际的渲染,这应该会使事情变得更快。

此外,尝试为所有图像重复使用相同的图形 - 无需每次都重新创建图形和图像轴以及色彩图。

最后,尝试使用我的ScreenCapture utility而不是硬拷贝+ imwrite。它使用不同的方法来拍摄"截图"这可能会更快。