【问题标题】:How to handle large images in matlab without running out of memory?如何在matlab中处理大图像而不会耗尽内存?
【发布时间】:2011-02-27 17:24:46
【问题描述】:

我正在使用筛选描述符根据它们之间的区域匹配创建两个图像的马赛克。问题是当创建的马赛克的大小变得太大时,matlab 内存不足。 是否有某种方法可以拼接图像而无需将完整的图像实际加载到内存中。 如果不是其他千兆像素图像生成技术或全景应用程序如何工作。

【问题讨论】:

    标签: memory matlab computer-vision


    【解决方案1】:
    1. 在拼接之前确定最终马赛克的大小(通过输入图像的大小和单应性轻松计算)。
    2. 将空白马赛克写入文件(不是任何特定格式,而是一个字节序列,就像在内存中一样)
    3. 我假设您将像素从原始图像反向映射到马赛克。因此,当您尝试存储马赛克中像素的强度时,只需写入文件即可。

    【讨论】:

      【解决方案2】:

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

      1. 您应该为您的数据使用整数数据类型,例如uint8
      2. 如果您正在拼接,您只能将感兴趣的区域保留在内存中,例如潜在的重叠区域。
      3. 如果其他方法都不起作用,您可以使用imresample 对图像进行空间下采样,然后处理生成的较小图像。

      【讨论】:

        【解决方案3】:

        您可以在并行计算工具箱中使用distributed arrays

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-11-20
          • 2013-12-02
          • 2021-02-10
          • 2010-11-06
          • 1970-01-01
          • 1970-01-01
          • 2011-02-07
          • 1970-01-01
          相关资源
          最近更新 更多