Алгоритмы векторизации растрового изображения
Аннотация
Мы рассматриваем проблему векторизации изображения. Данная проблема возникает ввиду того, что большая часть информации или нужных нам изображений хранится в растровой форме, которая плохо реагирует на масштабирование и обработку. Также вектор проще редактировать, так как в векторном формате изображение можно разбить на объекты. Задача векторизации изображения решается с помощью языков программирования, например С++, Python, Java; библиотек OpenCV. Так же данные виды задач можно решать с помощью Mathcad. Существует огромное количество различных алгоритмов. От того, что изображено, зависит то, какой метод лучше применить. Чем сложнее изображение, тем сложнее действия в методе. Сейчас векторизацию мы можем наблюдать во многих программах, таких как Adobe Illustrator, Corel, различные векторизаторы ГИС. Несмотря на то, что Adobe добился впечатляющих результатов в переводе растра в вектор, считается, что полностью автоматических методов и программ не существует. Также, большая часть наработок находится в закрытом доступе и в платных программах. И для этого есть причина. Написание алгоритмов векторизации требует глубоких математических знаний: работа ведется с различными видами вычислений коэффициентов,матрицами, нетривиальными математическими формулами, векторами направлений. С помощью библиотеки OpenCV на языке Python был написан скрипт, который реализует алгоритм Канни. Он достаточно хорошо работает с любыми типами линий, но такой тип трассировки изображения не позволяет нам качественно обрабатывать пейзажи или любые другие изображения с градиентным переходом, так как его выводом являются контура, а не заполненные объекты как, например,в Adobe Illustrator или алгоритмах Potrace.