2011-02-27 22 views
7

Estoy creando un mosaico de dos imágenes basadas en las coincidencias de región entre ellas utilizando los descriptores de sift. El problema es cuando el tamaño del mosaico creado se vuelve demasiado grande. Matlab se queda sin memoria. ¿Hay alguna manera de unir las imágenes sin cargar realmente las imágenes completas en la memoria? Si no, ¿cómo funcionan otras técnicas de generación de imágenes gigapixel o las aplicaciones panorámicas?¿Cómo manejar imágenes grandes en matlab sin quedarse sin memoria?

Respuesta

1

Hay algunas maneras que usted puede ahorrar memoria:

  1. que puedes usar tipos de datos enteros, como uint8 para sus datos.
  2. Si está suturando, solo puede mantener las regiones de interés en la memoria, como las regiones de superposición posibles.
  3. Si ninguno de los otros funciona, puede reducir la resolución de las imágenes espacialmente usando imresample, y trabajar en las imágenes más pequeñas resultantes.
2
  1. determinar el tamaño del mosaico final antes de la costura (fácil de calcular el tamaño de las imágenes de entrada y la homografía).
  2. Escriba un mosaico en blanco en el archivo (no en un formato específico sino en una secuencia de bytes igual que en la memoria)
  3. Supongo que está mapeando inversamente los píxeles de las imágenes originales al mosaico. Por lo tanto, solo escriba en el archivo cuando intente almacenar la intensidad del píxel en su mosaico.
Cuestiones relacionadas