Пользователь
0,0
рейтинг
14 февраля 2011 в 18:18

Фото-мозаика. Как сделать качественно и красиво

Хочу поделиться с Хабра-сообществом моим хобби, которое, если честно, даже некоторую прибыль мне приносит.

Начну сначала. Лет так 6-7 назад мне очень стала интересна такая штука как фото-мозаика. В самом начале я пробовал делать её вручную. Немеряное количество слоев в фотошопе и куча потраченного времени меня остановила года так на три. Но со временем только появлялся азарт.
И вот я начал свое исследование программного обеспечения для создания фото-мозаик, которого было перепробовано огромное количество. И в конечном итоге выбрано лучшее.

О лучшем как раз и пойдет речь.

image



Предистория


В начале расскажу, какие программы я пробовал.

AndreaMosaic www.andreaplanet.com/andreamosaic
Metapixel www.complang.tuwien.ac.at/schani/metapixel/examples.html
Imosaic www.imosaic.net/gallery.htm
MOSAnICk www.radivarl.demon.co.uk/nick/mosanick/mosanick.htm

И ещё много разных программ, которые я сейчас даже не вспомню. Все выше перечисленные вполне адекватные приложения, которые имеют место быть. Но для создания качественных фото-мозаик их маловато.
Где-то в начале 2008 я наткнулся на share-ware программку aolej Mosaic Creator. Это была просто супер находка. Сейчас я вам расскажу как с её помощью можно творить настоящие шедевры.

С чего начать?



Первое

Cамое важное — это идея. Идея фото-мозаики определяет способ её создания и инструменты, которые будут использоваться.
Приведу несколько примеров конкретных мозаик, которые я лично делал.
Одному банкиру в подарок делал мозаику размером 1.1 м. на 1.1 м. где был его портрет составлен из современных банкнот 160 стран мира.
Логотип института размером 3.5 м. на 1.5 м. составлен из фотографий 2000 выпускников института.
Логотип клиники по оплодотворению из 2000 изображений младенцев до 1 года.
Вариантов может быть множество. Включите свою фантазию.

Второе

Необходимо собрать базу фотографий или картинок, которые будут использоваться в качестве ячеек мозаики. Опишу некоторые требования, которые я сам вывел опытным способом.
  1. В зависимости, какой паттерн (рисунок) мозаики вы выберете, необходимо чтобы вся библиотека фотографий была либо в вертикальной либо в горизонтальной ориентации (я как правило использую горизонтальную).
  2. Желательно чтобы все картинки были с приблизительно одинаковым соотношением сторон. В идеале это 3х4. Но это зависит от паттерна.
  3. Если у вас много фотографий разной ориентации, необходимо их подрезать под нужный формат. Это стоит делать вручную.
  4. Качество картинок может быть не очень высоким. Опытным путем установлено, что самые лучшие мозаики получаются с размером одного элемента не более 3 см. Учитывая то, что достаточное разрешение печати, которое используется для работ такого типа – это 300 dpi., то размер картинки в 400px. на 300 px. вполне достаточный.
  5. Наверное, самое важное. Важно чтобы картинки или фотографии не повторялись и не были очень похожи. Самое противное, это когда находится пару клонов на мозаике рядышком.
  6. Оптимальное количество фотографий для одного проекта около 2000 тысяч. Хотя это зависит от типа мозаики и размеров. Меньше 500 получается очень плохое качество.
  7. С портретными фотографиями нужно повозиться больше, чтобы лица были поближе к центру фото, потому что когда лицо человека в ячейке разрезается пополам, это смотрится очень не красиво.

Третье


Базовая картинка или фотография. От её выбора также очень зависит качество мозаики.
Требования к ней следующие:
  1. Важны четкие линии на фотографии. Если это логотип или картинка – то можно повысить контрастность в фотошопе. Если это фото, то желательно чтобы это был типа паспортный вариант, но веселее.
  2. Если картинка или логотип сделан из тонких линий, тогда стоит немного его переделать, чтобы линии были толще.
  3. Если на базовой картинке используется текст, желательно чтобы шрифт текста был без закарлючек. Arial, Verdana и им подобные подходят идеально.
  4. Если портретная фотография с каким-либо неоднородным фоном, то фон желательно вырезать.

Если вы подготовили все три пункта можете приступать к созданию мозаики.

Создание


Берёте приложение с этого сайта www.aolej.com/mosaic/download.htm
Как инсталлировать и т.д. не буду рассказывать. Думаю с этим разберется любой.

Описывать всех функций программы я не буду. А их там огромное количество. Поэтому просто расскажу как сделать простую и красивую мозаику. В этой мозаике есть два важных момента — интересная идея и паттерн мозаики (который по сути и является моим самым любимым паттерном).

Считаем, что базовое изображение у нас готово. Закидываем его во вкладыше Source Image.
image

Следующий шаг. Вся база картинок для мозаики должна быть в одном месте, желательно даже в одной папке. Делаем Add Dir и добавляем таким образом все наши картинки или фотографии в базу.
image

Далее нужно настроить размеры мозаики и количество ячеек по вертикали и горизонтали. Для этого есть классный инструмент Size Calculator. В нем выставляем размер (я как правило это делаю в сантиметрах), и количество столбцов и строчек. Лучше всего выставить размеры ячеек в пикселях, исходя из соотношения сторон картинок из вашей базы, а на основе этого уже считать строчки и столбцы.
image

image

В следующей вкладке нужно выбрать паттерн мозаики. Вот здесь можно включить свою фантазию на полную. Рекомендую использовать редактор паттернов. Также рекомендую включить слева Background — Source Image. Это заполнит промежутки между ячейками (если такие предусмотрены в паттерне) базовой картинкой.
image

В следующем вкладыше находятся ключевые настройки, которые влияют на качество мозаики.
Cell recognition quality – для хорошего качества желательно, чтобы было значение выше 150. Чем больше значение, тем дольше будет генерироваться мозаика и выше качество.
Minimal distance between the same image – желательно ставить максимальное – 9.
Мах cell image repetition – его необходимо посчитать. Если наша мозаика имеет 1833 ячейки, а у нас есть 534 картинок в базе, то число должно быть 4 (1833/534 с округлением вверх).
Filling grid – это инструмент, если вам надо сделать мозаику определенной формы(например сердце). Или для разных областей мозаики использовать разные картинки.
image

Во вкладыше Cell Enhance нужно выставить два параметра:
Single Cell colorize – уровень подкрашивания всей картинки. Больше 15% не стоит использовать, потому что сильно падает качество мозаики.
Detail Cell colorize — уровень подкрашивания частей картинки. Больше 10% не стоит использовать, потому что начинают проступать детали базового изображения.
image

Далее вкладыш Masking. Здесь, для того чтобы края ячейки нашей мозаики были более плавными, с переходами, мы используем альфа-маску. В программе есть куча разных масок, выбор большой, если какая-то не подходит, её можно подредактировать в фотошопе.
image

Итак все настойки сделаны теперь можно приступать к генерации мозаики. В зависимости от размера мозаики, процессора на компьютере и объёма памяти этот процесс может длиться до 30 минут. При этом изображение-результат может иметь размер даже 1,2 GB (у меня такое было; разработчики утверждают, что верхний размер ограничен только размером диска). Нужно заметить, что мозаика генерируется в формате bmp без всяких компрессий и т.п.

Ну, жмём на зелёный Play и ждем.

Результат


Из опыта скажу, для получения качественного результата нужно хотя бы 10-15 заходов с разными настройками. Это если база картинок уже выверена. Если база новая – нужно будет вылавливать дубликаты.

Выкладываю мозаику, которую делал для примера.
image
Изображение кликабельное и большое(2.4 mb).

И ещё одно:
image
Изображение кликабельное и большое(2.4 mb).

P.S.


Несколько дельных советов:
1. Если фотографий маловато, попробуйте разбавить их другими фото похожей тематики. Только не используйте фотографий левых людей. Вызывает много вопросов.
2. В Goggle Picassa есть функция распознавания лиц. Если у вас в базе много групповых фото приличного качества, то с её помощью можно собрать лица и пополнить базу уникальными фото.

Удачи.
Иван Дзямулич @cohe4ko
карма
57,2
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (30)

  • +2
    Вот бы ещё про алгоритмы создания таких мозаик кто-нибудь написал.
    • +8
      Наверное, такой:
      1. Индексируем базу маленьких картинок (узнаем средний цвет картинок).
      2. В соответствии с параметрами делим основную картинку на определенное количество частей, у которых тоже узнаем средние цвета.
      3. Располагаем соответствующие маленькие картинки в места, где должен быть их средний цвет.
      • 0
        Использовал AndreaMosaic, там алгоритм несколько умнее. Там подгоняется контур на маленькой картинке под контур большой.
    • 0
      Об алгоритмах можете почитать здесь: habrahabr.ru/post/247149/

      image
  • 0
    Мне бы тоже было интересно, но тогда топик был бы не в разделе Дизайн.
  • +1
    А еще есть онлайновый сервис для генерации таких картинок: webofhuman.ru
    • 0
      Идея сервиса прикольная, но самый главный прикол описанных мною мозаик в том, что используются тематические базы изображений. и специфическая обработка изображений, что дает очень хороший эффект.
      Конечная цель — это широкоформатная печать на фотобумаге или на холсте в фото-качестве.

  • 0
    Artensoft Photo Mosaic Wizard — простой как валенок, но меня качество его логики очень даже устроило.
  • –2
    Хочу поделитЬся >_<
    • +1
      Исправил, спасибо.
  • 0
    Скажите, сколько времени занимает генерация одной картинки?
    • 0
      размер 1х1 метр при разрешении 300 dpi на компе core 2 duo с 8 gb оперативки — от 15 до 30 минут.
      Первый раз дольше, потому что индексируется база картинок, а второй и дальше быстрее где-то минут на 10.
  • 0
    Спасибо большое! Очень полезная статья!
  • 0
    На итоговых мозаиках видно что на многих исходниках изменена гамма, что есть плохо. Либо алгоритмы слабоваты, либо база изображений.
  • 0
    1. Приводим к общему среднему размеру все фото кроппингом.
    2. Берем статистику по цвету, выбираем абсолютного победителя (если нет, то выбираем среднее между двумя победителями или тремя и т.п.).
    3. Берем цвета на картинке согласно делению ширины и высоты на кол-во картинок, также собираем статистику (если не попиксельно выходит) и выбираем цвета.
    4. Раскладываем «пасьянс» согласно матрице цветов основной картинки, причем сначала основные тона и так далее по статистике. Картинки, которые не пришлись к фото размещаем к «близким цветам» оставшимся на исходнике.
    5. ???
    6. PROFIT !!11!!1
    • +1
      Ах да, и все это с помощью GD, вперед! ;P
    • 0
      И еще смотрим, чтоб изображения не повторялись, или одинаковые изображения были не очень близко друг к другу.
  • 0
    Очередной топик для демиарта на хабре. Был уже топик «Как сделать стильный фон», и мой комментарий «Как сделать обои как в убунте из порнушки».

    Размещать это нужно не здесь, а на тематических ресурсах или у себя.

    Я вот выложил эротические постеры мозаики с Путиным, Навальным и Медведевым в поддержку WikiLeaks, но нафига они здесь? :)

    Программы для создания мозаик элементарные, разобраться можно за один присест. А вот разбор алгоритмов был бы весьма интересен, ведь каждая из программ использует свой, ибо весьма сильно отличается производительность.
    Быстрее всего (несколько минут на мозаику 4000×4000px) — AndreaMosaic, и наоборот — очень долго рендерится в Mosaic Creator.
    • +3
      Для примера (в исходнике 9100 ню-фото, 18Mb):
      image 49,71 КБ
      • 0
        И вот это действительно качественная мозайка. Здесь хоть нет этого ужасного цветного шума.
        • +2
          конечно качественная учитывая размеры «пикселей». чем они мень тем качественнее мозаика
    • 0
      а чем Вам НАвальный-то не понравился?
      • 0
        Навального полностью поддерживаю. Это лишь еще один способ распространить о нем информацию.
        • 0
          тогда всё пучком.
          ато он как-то попал в один ряд с крабом и шмелем…
          • 0
            всмысле, получается что попал.
            потому как картинки сходно сделаны…
    • 0
      Давайте я проясню немного цель даного топика. Программ для создания мозаик очень много. Я просто поделился опытом создания мозаик.
      По поводу того что разобраться можно за присест — полностью с вами согласен. Но найти вариант, который красиво смотрится на широкоформатной печати — это уже вопрос опыта. А ещё интересней — это сделать так чтобы ваши работы ещё и купили. Ну и наверное я не случайно выбрал блог для этого топика — Дизайн.
  • 0
    Mazaika от Boris A. Glazer () еще в 1997 давала лучшие результаты, чем 70% указанных автором программ. Хотя она конечно небесплатна. Давно уже с Борисом правда не говорил, но лет пять назад его софтина использовалась для создания баннера 60х30 метров из фотографий Марса для NASA (что-то около 10000 фотографий использовалось). Кроме того она кроме среднего цвета расчитывает геометрию.
  • –1
    www.artphotomix.com вот еще сервис который онлайн генерирует фотки.
  • 0
    Я писал свой матричный велосипед в своё время, при большом количестве исходных картинок получалось неплохо, хотя и небыстро.
  • 0
    А под мак нет подобных приложений? )

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.