在 MATLAB 中保存图像的更快替代方案? [复制]

Posted

技术标签:

【中文标题】在 MATLAB 中保存图像的更快替代方案? [复制]【英文标题】:Faster alternative for saving images in MATLAB? [duplicate] 【发布时间】: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 + 颜色图)而不是通过硬拷贝? 我该怎么做?我可以试一试。 【参考方案1】:

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

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

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

【讨论】:

以上是关于在 MATLAB 中保存图像的更快替代方案? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

图像融合基于matlab双树复小波变换像素级图像融合含Matlab源码 2024期

图像融合基于matlab双树复小波变换像素级图像融合含Matlab源码 2024期

Matlab 图像处理工具包的替代品

保存matlab中已分割的图像

DecimalFormat.format() 的更快替代方案?

SQL Server 中 MIN/MAX 的更快替代方案