Python dev / трассировка растровых изображений (срочно)

20 000 руб. за проект • наличный расчёт, безналичный расчёт, электронные деньги
19 февраля 2019, 04:18 • 1 отклик • 57 просмотров
Бюджет обсуждаем.

ЗАДАЧА
В имеющуюся утилиту github / kamury / color_trace добавить возможность подавления не достаточно крупных областей.
Область – замкнутый непрерывный контур одного цвета
Под подавлением подразумевается объединение малой области с соседней областью. Соседняя область, с которой будет происходить объединение должна выбираться из следующих соображений:
1. Непосредственно примыкать к подавляемой области
2. Приоритет должен отдаваться областям которые гарантировано не будут подавлены
3. Иметь цвет наиболее близкий к подавляемой области. Дистанцию между цветами можно задать как длину вектора построенного по двум точкам (цвет исходной области и цвет соседней области), в качестве координат точек взять значение составляющих цвета (R, G, B).
Область считать не достаточно крупной если в нее не удается вписать окружность заданного радиуса. Радиус задается как аргумент командной строки.

СУЩЕСТВУЮЩИЙ АЛГОРИТМ
Существующий алгоритм объединяет несколько утилит командной строки и состоит из шагов:
1. Квантование цветов рисунка с возможностью задания их количества
2. Фильтрация шумов на квантованном избражении
3. Разделение квантованного изображения на слои. В каждом слое присутствует только 1 цвет изображения
4. Трассировка в отдельности всех слоев утилитой potrace. Данная утилита не поддерживает трассировку цветных изображений.
5. Объединение векторных слоев в единый SVG файл

Подавление мелких областей можно выполнять на этапе 3 или после этапа 5 в зависимости от того какая реализация будет проще.

PS Если сработаемся, то пригласим в компанию работать — нам не хватает одного бекендера.