Как склеить фотографии в панораму с помощью nip2

Когда люди задаются вопросами типа "как склеить фотографии в фотошопе" или "чем склеить панораму", то находят программы Photoshop или Hugin. Ответ на этот вопрос становится гораздо менее очевидным, когда нужно склеивать много больших изображений и при этом их просматривать. Фотошопы на таких задачах выпадают в осадок от нехватки памяти, Хьюджины корёжат изображение. Однако в недрах наших дистрибутивов Linux имеется замечательнейшее средство от всех болезней разом обработки изображений, которое называется nip2.


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

Проблема в объединении изображений в том, что они большие и их много. Кроме того, просматривать такое огромное изображение фотошопом не получится - во всяком случае, даже если и получится, то очень небыстро. И тут нам на помощь приходит nip2.

Пример склеивания фотографий в nip2

В nip2 это сделать просто благодаря тому, что отображение картинки ведётся мозаикой - не всё сразу, а лишь частично, что сильно ускоряет работу. Поэтому склеивание изображений будет быстрым; однако к интерфейсу nip2 придётся немного привыкнуть, потому как он есть нечто среднее между Photoshop и Excel. На примерах ниже мы убедимся, что это довольно логичный интерфейс.

Склеить фотографии горизонтально
Открываем последовательно два изображения, которые нужно склеить. Они появятся как две ячейки в таблице nip2. Зажимаем Shift и кликаем последовательно на этих картинках:

From Записки дебианщика

Дальше, не снимая выделения (не кликаем где попало) идём в меню Toolkits - Image - Join и выбираем пункт Left to Right:
From Записки дебианщика

Получаем результат - изображение, склеенное в панораму:
From Записки дебианщика
В появившейся ячейке А4 можно настроить выравнивание (Alignment) и зазор между изображениями. Просмотр склеенного изображения проблем и отъедания всего своп-файла не вызовет. Сохранить результат можно, кликнув правой кнопкой мыши на ячейке со склеенным изображением и выбрав Сохранить как:
From Записки дебианщика


Склейка фотографий вертикально
происходит точно также, но выбираем "соединять сверху вниз" (Top
to Bottom):
From Записки дебианщика

и неизменно превосходный результат:
From Записки дебианщика

И другие возможности
А возможностей у nip2 выше крыши, причём о них многие даже не подозревают. Можно, например, просто вставить кусок одного изображения в другое. Достигается это так:
Toolkits - Image - Insert
Можно также выровнять яркость на отдельных фрагментах изображений (tilt brightness). Это когда одна часть изображения освещена сильнее другой, то есть яркость меняется от края изображения к середине). Это устраняется так: Tools - Filters - Tilt brightness.
Здесь нестандартный интерфейс nip2, использует своё преимущество: при изменении изображения в ячейках, результаты в других ячейках автоматически перерисовываются.
Больше о склейке изображений, рефлектограммах и прочего Rocket Science можно прочитать в примерах [на английском].

Где взять nip2?

Так как nip2 - свободное программное обеспечение, его запросто можно скачать с официального сайта:
  • для Windows
  • для Mac OS X
  • для Linux (source code или поищите в репозиториях своего дистрибутива по названию nip2).
Узнать больше о nip2 можно из обзора и развёрнутого описания, а так же официального сайта [на английском].


Кстати: Блог о nip2

У замечательного графического анализатора nip2 теперь появился свой блог, ведёт который John Cupitt - автор проекта. Блог появился не в последнюю очередь благодаря стараниям и активному багрепортингу скромного автора этих строк: ради поддержки матлабовских MAT-файлов и формата FITS автор водрузил на рабочую машину Виртуальный Ящик с Debian Unstable и красноглазил с напильником и поиском библиотек для сборки последней версии.

Блог о nip2 было решено завести для популяризации этой замечательной программы, а также как расширения несколько сухой, хотя местами весьма толковой, документации. На блоге публикуются анонсы по выходу новых версий, а так же планируются интересные посты по обработке изображений.

19 комментариев: |высказаться!| RSS-лента дискуссии.|
pigritor комментирует...

imagemagick же. лучше graphicsmagick (команда montage)

virens комментирует...

@pigritor комментирует...
imagemagick же
Оно не интерактивное, а тут можно мышкой всё делать. И результат сразу посмотреть. В общем, это из серии "как с помощью nip2 отстрелить себе ногу". Да, ещё можно выровнять яркость (в разделе tilt brightness).

. комментирует...

Как оно дружит с круговыми панорамами, когда до склейки нужно компенсировать искажения?

fuck_blogspot комментирует...

Вот чему я у вас в блоге научился, так это писать ковро-посты :-)
>imagemagick
Я понимаю, что ещё на движке сайта это незаменимо, а на десктопе-то накой? Вот обязательно найдётся мудрец, который скажет, что консоль рулит.
Хотя часто оно так и происходит.

arcd комментирует...

Михаил, поправь:
"меняя изображения в ячейках, результаты в других ячейках автоматически перерисовываются"
- тогда уж "при изменении изображения в ячейках..." А то получается "подъезжая к городу, с меня слетела шляпа" :)

virens комментирует...

@. комментирует... 18.10.2011 13:14:00
Как оно дружит с круговыми панорамами
Никак. Это просто пример склейки прямоугольных фрагментов изображений в одно очень большое. Иллюстрация возможностей nip2, о которых большинство даже не подозревает.

@fuck_blogspot комментирует...
Вот чему я у вас в блоге научился, так это писать ковро-посты :-)
Хм... ну до гобеленов они по размерам не всегда дотягивают :-) Ну и потом, мы же не хотим быть, как Федорчук, водой из постов которого можно наполнить Аральское море до краёв, верно?

Я понимаю, что ещё на движке сайта это незаменимо, а на десктопе-то накой? Вот обязательно найдётся мудрец, который скажет, что консоль рулит.
Мудрец pigritor высказал своё мнение - в общем, правильное. Можно такое сделать и с помощью imagemagick; другое дело, что в nip2 оно вроде как нагляднее и проще. Тем более, что если панораму нужно склеить одну, а не сотню.

@arcd комментирует...
Михаил, поправь:
Да, коряво получилось. Спасибо.

А то получается "подъезжая к городу, с меня слетела шляпа" :)
На самом деле, я так примерно и хотел. Но не вышло :-/

fuck_blogspot комментирует...

>Ну и потом, мы же не хотим быть, как Федорчук, водой из постов которого можно наполнить Аральское море до краёв, верно?
Не надо, alv - гений, он просто мало пользуется тегом <b

virens комментирует...

@fuck_blogspot комментирует...
Не надо, alv - гений, он просто мало пользуется тегом
Старый, жирный и толстый тролль во мне говорит, что в этом предложении можно вкусно поесть :-) Но я не буду.

Проблема Федорчука в том, что он пытается угнаться и за линуксами (причём всеми сразу), и за *BSD (начиная с DragonFly и заканчивая обычной фрёй). Ему (да и никому, наверное) это не удастся, потому как всё довольно быстро развивается. От того его знания в юниксах поверхностны, если не сказать хуже. Дело усугубляет его витиеватый слог с претензией на учительство, отягчённый явной склонностью к графомании.

Когда я пишу баян, я стараюсь быть настолько кратким, насколько можно - это походит на музыкальный набросок. Федорчук же разражается баянной симфонией - но блин, мы же это уже где-то слышали :-)

fuck_blogspot комментирует...

А. Федорчук
Цикл статей на тему "Использование nip2, настройка и автоматизация":
Вместо предисловия - 14862 знака
Сравнительный анализ свободных конвертеров, анализаторов и редакторов изображений - 12645 знаков и 42 скриншота
История возникновения nip2 и попытки интеграции в системах BSD - 44865 знаков и 56 скриншотов
.....
.....
и т.д.
После положительных откликов в комментариях решено перенести весь цикл на отдельный сайт под наванием "Ниптуада"....

virens комментирует...

@fuck_blogspot комментирует...
А. Федорчук Цикл статей на тему "Использование nip2, настройка и автоматизация"
Ох мать! Вот старик разошёлся-то! :-)

и т.д.
Да-да, и так далее.

отдельный сайт под наванием "Ниптуада"
Я выше про баянную симфонию именно это и имел в виду: его тянет на графоманию с претензией на эпичность. Федориада, Ниптуада... Гомер курит за углом.

Ладно, тролль во мне уже наелся. Спасибо, было вкусно :-)

virens комментирует...

А если серьёзно: мне просто хотелось показать, что возможности nip2 не ограничиваются анализом изображений. Конечно, при работе с ним нужно знать матчасть - это, в общем, исследовательское приложение. Это не фотошоп с кнопками типа "сделай мне зашибись". Документация по нему есть, но автор - научный сотрудник университета, так что он предполагает в пользователе наличие мозгов изначально. Отсюда такая краткость вики и несколько фрагментарная (хотя приличная) официальной документации.

P.S.> И да, если у тов. @fuck_blogspot закралось подозрение, что я копирую федорчуковские посты, то спешу его [подозрение] развеять. Чужих мемуаров я не чтец и тем паче не копипастер. Но это так, a propos.

fuck_blogspot комментирует...

>Спасибо, было вкусно :-)
Да не за что -)

>Это не фотошоп с кнопками типа "сделай мне зашибись".
Хочу такой фотошоп, в моём (лицензионном!) под вайном (федора) таких кнопКов нет :(

>А если серьёзно: мне просто хотелось показать, что возможности nip2 не ограничиваются анализом изображений
Хороший материал, хорошее оформление, где надо акцентировано, всё путём.

>И да, если у тов. @fuck_blogspot закралось подозрение, что я копирую федорчуковские посты, то спешу его [подозрение] развеять.
Не надо спешить, мне даже это в голову не пришло, тем более, что Федорчука (вроде как) никогда дебиан и отдельные спо-шки не интересовали.

Minoru комментирует...

Хэй! Что-то комментариев маловато — слишком практичный пост, что-ли? :)

Спасибо, virens: два раза в год, за несколько дней до начала очередного семестра, я прихожу в корпус и фотографирую доску с расписанием. А так как камера телефона имеет всего лишь 2 мегапикселя, фотографировать приходится кусками. Естественно, искать потом в месиве фотографий нужный день не так уж удобно (что каждый раз подталкивает стряхнуть пыль со своих LaTeX'овских навыков и забацать-таки неземной красоты таблицу с расписанием). Короче, теперь можно будет обходиться панорамкой :)

И как всегда — парад придирок:

> Получаем результат - склеенное изображение в панораму:

Лучше было бы «склеенное в панораму изображение» или «изображение, склеенное в панораму».

> Можно так же выровнять яркость на отдельных фрагментах изображений

> а так же как расширения несколько сухой, хотя местами весьма толковой, документации

Я уже говорил, что эту ошибку можно юзать заместо копирайта? :)

Анонимный комментирует...

Опечатки в названиях программных продуктов: должно быть Hugin вместо Hudgin, Excel вместо Excell

virens комментирует...

@Minoru комментирует...
Что-то комментариев маловато — слишком практичный пост, что-ли
А так всегда: пишешь что-нибудь нужное - соберёшь два с половиной комментария от полутора анонимусов. Напишешь безделицу типа МСВС - полторы сотни комментов и толпы троллей разной степени жирности и зелёности (включая автора :-)).

Спасибо, virens: два раза в год, за несколько дней до начала очередного семестра, я прихожу в корпус и фотографирую доску с расписанием.

Ну да, это в самый раз. Ко мне в своё время пришли соседи из другой лаборатории - они пытались фотошопом склеить фотографии с электронного микроскопа, когда снимали большой и длинный участок какой-то важной им поверхности. Так что пост написан давно...

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

что каждый раз подталкивает стряхнуть пыль со своих LaTeX'овских навыков и забацать-таки неземной красоты таблицу с расписанием
Это адский труд. По моему скромному мнению, таблицы в латехе - самый ад.

И как всегда — парад придирок:
Дык, разумеется.

Лучше было бы «склеенное в панораму изображение» или «изображение, склеенное в панораму».
Второй вариант нравится. Исправлено.

Я уже говорил, что эту ошибку можно юзать заместо копирайта?
Ушёл регистрировать торговую марку :-))


@Анонимный комментирует...
Опечатки в названиях программных продуктов: должно быть Hugin вместо Hudgin, Excel вместо Excell
Спасибо, Анонимус! Поправил. Просто ни тем, ни другим не пользуюсь, поэтому названия подзабыл :-)

virens комментирует...

@pomosh комментирует...
Может так же подскажите какой программой можно зделать 3Д панораму? И как это происходит?

Pomosh, а ты сам понял, что спросил!? Я вот тоже не знаю, как это происходит.

Да, предыдущие комментарии снёс за рекламу в подписи.

fuck_blogspot комментирует...

Из 3D панорам я видел только обычные круговые нарезки из фото и "двухслойные". Последние знаю, как заделать для уеб-страниц руками, а вот насчёт ленивого софта - донт ноу.

OMI комментирует...

При горизонтальной склейке фотографий есть опция горизонтального выравнивания. А что делать в случае, когда дополнительно требуется вертикальное выравнивание?

virens комментирует...

@fuck_blogspot комментирует...
Из 3D панорам я видел только обычные круговые нарезки
Ну так это ж не тридэ, а баловство.


@OMI комментирует...
При горизонтальной склейке фотографий есть опция горизонтального выравнивания. А что делать в случае, когда дополнительно требуется вертикальное выравнивание?
Честно говоря, не задавался таким вопросом. Кстати, можно автору стукнуть на электропочту - он общительный парень, отвечает быстро.

Да, OMI, этот nip2 не есть специально заточенный под FITS анализатор - к нему просто прикрутили возможность работы с FITS. Но возможностей по анализу изображений там много.

Отправить комментарий

Подписаться на RSS-ленту комментариев к этому посту.