2011-02-27 66 views
7

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

回答

1

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

  1. ,您应该使用整数数据类型,如uint8为您的数据。
  2. 如果拼接,则只能将感兴趣的区域保留在内存中,例如潜在的重叠区域。
  3. 如果其他工作都不起作用,您可以使用imresample对图像进行空间下采样,然后处理生成的较小图像。
2
  1. 确定最终镶嵌的缝合前的大小(容易计算与输入图像的尺寸和所述单应性)。
  2. 写一个空白的马赛克文件(不是在任何特定的格式,但像内存中的一个字节序列)
  3. 我假设你是从原始图像映射到马赛克像素。所以,当您尝试在马赛克中存储像素的强度时,只需写入文件即可。