【问题标题】:Faster alternative for saving images in MATLAB? [duplicate]在 MATLAB 中保存图像的更快替代方案? [复制]
【发布时间】: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


【解决方案1】:

尝试将人物放置在屏幕外(例如,Position=[-1000,-1000,500,500])。这将使它“可见”,但不需要进行实际渲染,这应该会使事情变得更快。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 2012-07-05
    • 2012-01-23
    • 2013-07-13
    • 2011-02-27
    • 2010-09-22
    相关资源
    最近更新 更多