Как написать генератор мозаики изображений

Задача следующая: как создать мозаику из большого количества изображений. Мой первый выстрел будет использовать эволюционный алгоритм. Где генотип представляет собой сопоставление исходных изображений с позициями в мозаичной сетке, а индивидуум оценивается по сходству с исходным изображением. На самом деле в базовом подходе каждую плитку можно обрабатывать отдельно, поэтому будет достаточно повторения по сетке и сопоставления лучшего изображения. Но я еще не знаю, как определить функции подобия. Наивное попиксельное сравнение разницы (r,g,b), вероятно, было бы слишком строгим. Я думаю, что некоторые алгоритмы обработки изображений должны применяться, например, балансировка гистограммы, чтобы оптимизировать сходство между фрагментом изображения и областью, в которой мы пытаемся его найти.

Это было бы похоже на генетический алгоритм, который создает Мону Лизу. напоминают.

Образец мозаики можно найти здесь.


person jethro    schedule 06.08.2010    source источник
comment
Заголовок вашего вопроса должен быть таким: Как написать метрическую функцию, которая сравнивает содержимое изображения с точки зрения оттенка?   -  person Heath Hunnicutt    schedule 06.08.2010
comment
Думаете, это единственный возможный способ справиться с этой проблемой?   -  person jethro    schedule 06.08.2010
comment
Чисто в качестве справки здесь приведен онлайн-генератор мозаики: click7.org/image-mosaic-generator   -  person Justin Tanner    schedule 24.09.2010


Ответы (1)


Что ж, я сделал это (но где-то остановился). Посмотрите на: GetAMosaic Это был тестовый проект, чтобы сделать некоторые C снова :-) Так что не смотрите там на каждую деталь.

person schoetbi    schedule 06.08.2010
comment
Можете ли вы дать краткое описание вашего решения? - person jethro; 06.08.2010
comment
Это консольная программа, которую можно запустить двумя способами. Во-первых, это режим сканирования. Все изображения сканируются, классифицируются по среднему (RGB) цвету и помещаются в базу данных (sqlite). Второй режим — это режим рендеринга, при котором входное изображение обрабатывается, а изображение из базы данных помещается в нужное место. Есть и другие алгоритмические вещи, такие как добавление случайного шума, смешивание исходного изображения и маленьких изображений, и так далее. Но это в основном алгоритм. - person schoetbi; 06.08.2010