Алгоритм преобразования точек в векторные линии. (Растр в вектор)

Как я могу преобразовать набор точек, которые (мы можем предположить) создать линию из сегментов (Верхнее изображение) к векторной линии (Нижнее изображение)?

Есть ли какой-нибудь алгоритм для этого? Предпочтительно C ++, но даже псевдокод будет в порядке.

введите описание изображения здесь

-2

Решение

Вот как я бы подошел к этому:

  • Создать контур / контур растрового изображения

  • Используйте эти точки как векторный контур / контур

  • Разделите точки пополам, чтобы у вас была линия, описывающая верхний край, и линия, описывающая нижний край исходного контура.

  • Возьмите нижнюю линию (или верхнюю линию) и используйте алгоритм упрощения линий (например, Reumann-Witkam или Douglas-Peucker), чтобы получить упрощенную векторную линию

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

Это должно дать вам разумные результаты без особых вычислительных сложностей.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]