Как преобразовать контуры входного изображения в набор векторов на openCV?

Общая задача - очень своеобразный "принтер" на ардуинке.
Цель - рисовать картинки, но не как плоттер (линейно), а по-умному (как бы это рисовал, например, человек :)

Что есть:
Есть программа на c++, openCV которая выделяет контуры изображения с различной глубиной и выводит матрицу градации серого - т. е. изображение конвертируется в матрицу, в которой каждый элемент это значение от 0 до 255, где 0 - белый, 1 - черный (или inverted, не принципиально).
Это сделано для того, чтобы я имел возможность вычислять координаты каждой точки/пикселя изображения, который имеет "цвет" или наличие.

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

Но необходимо следующее:
Необходим функционал, который позволит выделенные контуры входного изображения преобразовать в вектор/набор векторов и вывести, например в файл в каком-то читаемом правильном виде.. (для последующей отправки этого набора в сериалПорт ардуинки)
Именно вектор, так как важно, чтобы имелась возможность "идти" по этим векторам, а не по пикселям.

В описании библиотеки с трудом нашел инфу по подобным векторам, но применить не получается.

Посоветуйте, пожалуйста, что делать или в какую сторону поискать, может есть более грамотный вариант решения задачи.
Спасибо!
  • Вопрос задан
  • 4660 просмотров
Пригласить эксперта
Ответы на вопрос 1
Не это ли: potrace

Potrace(TM) is a tool for tracing a bitmap, which means, transforming a bitmap into a smooth, scalable image. The input is a bitmap (PBM, PGM, PPM, or BMP format), and the default output is an encapsulated PostScript file (EPS). A typical use is to create EPS files from scanned data, such as company or university logos, handwritten notes, etc. The resulting image is not "jaggy" like a bitmap, but smooth. It can then be rendered at any resolution.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы