如何在matlab中处理大图像而不会耗尽内存?

我使用sift描述符基于它们之间的区域匹配创建两个图像的拼接图。 问题是当创建的马赛克的大小变得太大时,matlab内存耗尽。 有没有实际加载完整的图像在内存中拼接图像的方式。 如果没有其他千兆像素图像生成技术如何工作或全景应用程序。


  • 在拼接前确定最终拼接的尺寸(易于根据输入图像的大小和单应性计算)。
  • 写一个空白的马赛克文件(不是以任何特定的格式,而是像在内存中一样的字节序列)
  • 我假设你将原始图像的像素映射到马赛克。 所以,当您尝试在马赛克中存储像素的强度时,只需写入文件即可。

  • 有几种方法可以节省内存:

  • 您应该使用整数数据类型,例如uint8作为数据。
  • 如果拼接,则只能将感兴趣的区域保留在内存中,例如潜在的重叠区域。
  • 如果没有其他工作,您可以使用imresample对图像进行空间下采样,然后处理所产生的较小图像。

  • 您可以在并行计算工具箱中使用分布式数组

    链接地址: http://www.djcxy.com/p/4963.html

    上一篇: How to handle large images in matlab without running out of memory?

    下一篇: Modular applications with Entity Framework Code Only and ASP.NET MVC