Хотите получить бесплатную консультацию и оценку для вашего проекта?
Назад к списку

Генератор раскрасок

Подробнее

Перевод растровых изображений в векторные раскраски.

Скрипт Python конвертирует растровые изображения в векторные. Векторные изображения затем объединяются в книжку-раскраску, состоящую из нескольких рисунков с сегментами, где каждый сегмент имеет внутри его обобщенный цветовой код.

Эти 2 шага - векторизация изображений и создание книжки-раскраски - сделаны как два независимых модуля. Вот почему можно создавать раскраски, используя даже другие векторные изображения, созданные вне этого приложения.

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

В зависимости от требований к стилю итоговых изображений, в приложении реализовано несколько алгоритмов формирования линий границ цветовых сегментов. Они позволяют сгладить кривые, сделать края и сохранить гладкость определенных линий.

Описание алгоритма

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

Для устранения потенциальной проблемы, связанной с нехваткой ЦП для обработки больших изображений, реализована возможность обработки больших данных по частям.

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

ein2.PNG

ein3.PNG

Сервисы
Время разработки
7 недель 1 разработчика