Цель: создать Фотомозаика программно с использованием .NET и C#.
Основная причина, по которой я хотел бы сделать это программно, - это возможность записывать, какое изображение и куда оно идет, чтобы я мог создать анимированный эффект объединения изображений для создания фотомозаики. Было бы здорово просто найти что-то уже существующее, что я мог бы использовать для достижения этой цели почти прямо из коробки.
Любые идеи?





Не совсем ответ на ваш вопрос, но вы должны знать, что с Photomosaic связаны как патент, так и товарный знак. Вы можете найти информацию в статья в Википедии, на который вы уже ссылались.
Думаю, можно позаимствовать идеи из квантования цвета. Для каждой фотографии рассчитайте средний цвет. Так как он маленький, он будет выглядеть именно так, если смотреть на него с расстояния. Затем разделите целевое изображение на прямоугольники размером с фотографию и вычислите их средние цвета. Или, для лучших результатов, уменьшите его так, чтобы каждая фотография соответствовала одному пикселю на целевом изображении. Затем для каждого пикселя целевого изображения выберите фотографию, значение цвета которой наиболее близко к цвету пикселей. (Самый близкий - как самый близкий в кубе 3D RGB). Вы также можете применить дизеринг, чтобы он выглядел лучше (алгоритм Флойда-Стейнберга - один из лучших алгоритмов).
Вы можете найти метапиксель, в нем есть код для анализа фотомозаики, но также можно записать выходной файл, в котором точно указано, какое исходное изображение использовалось в каждом месте. Это должно сделать то, что вам нужно. Однако не уверен в поддержке Windows.
Линк кажется мертвым, не уверены, есть ли у нас лучший?