Как работать с большими изображениями в Matlab без нехватки памяти? - PullRequest
7 голосов
/ 27 февраля 2011

Я создаю мозаику из двух изображений на основе совпадений регионов между ними, используя дескрипторы просеивания.Проблема в том, что когда размер созданной мозаики становится слишком большим, не хватает памяти.Есть ли какой-нибудь способ сшивания изображений без фактической загрузки полных изображений в память.Если нет, то как работают другие методы генерации гигапиксельных изображений или приложения панорамы.

Ответы [ 3 ]

2 голосов
/ 28 февраля 2011
  1. Определите размер конечной мозаики до сшивания (легко вычислить по размеру входных изображений и гомографии).
  2. Запись пустой мозаики в файл (не в каком-либо определенном формате, а в последовательности байтов, как в памяти)
  3. Я предполагаю, что вы переворачиваете пиксели от оригинальных изображений до мозаики. Поэтому просто пишите в файл, когда пытаетесь сохранить интенсивность пикселя в мозаике.
1 голос
/ 28 февраля 2011

Есть несколько способов сохранить память:

  1. Вы должны использовать целочисленные типы данных, такие как uint8 для ваших данных.
  2. Если вы прошиваете, вы можете сохранить только области интереса в памяти, например, области потенциального перекрытия.
  3. Если ничего из этого не работает, вы можете пространственно уменьшить выборку изображений, используя imresample, и работать с полученными изображениями меньшего размера.
0 голосов
/ 04 марта 2011

Вы можете потенциально использовать распределенные массивы в наборе инструментов параллельных вычислений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...