|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Michael Lezzhov 2:5020/400 26 Jul 2002 00:13:33 To : Evgen Kondratyuk Subject : Re: Need Help -> Векторизация -------------------------------------------------------------------------------- > Входные данные: БМП файл с фигурами(триугольник, квадрат и т.д.). > Требуется: Векторизировать файл, тоесть определить линии (начало и конец > линии) и сложить из линий объекты. Вывести в текстовый файл названия объектов и > координаты составляющих их линий. > Векторизовать можно, например, с помощью волнового алгоритма. Подробно описано в http://ocrai.narod.ru/vectory.html Для каждой связной компоненты пикселей поочередно применять волну на 8 направлений и на 4 направления. В качестве координат отрезков линий векторизованного изображения использовать середину испущенной волны. Координаты снимать, например, через каждые 3-4 волны. В результате этого получится совокупность маленьких отрезков известной толщины. причем будут известны соседи каждого. (Толщина отрезка - это средняя ширина волнового фронта по всему отрезку) После этого отфильтровать явный мусор средней толщине и суммарной длине отрезков. После этого можно выделять большие отрезки на изображении(состоящие из маленьких отрезков). Точки поворота можно отличить по резкому изменению угла между маленькими отрезками. Отрезок прямой(большой) можно отличить от всего остального по разности расстояния между его крайними точками и длиной отрезка. У отрезка прямой она достаточно маленькая.(Если этого не хватит можно еще добавить какие-нибудь еще признаки) Из больших отрезков довольно просто составить фигуры(квадрат, треугольник) Работает все это довольно быстро. Такой поиск фигур сработает, если фигуры не пересекаются. Иначе задача сильно усложнится. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/6577ec9cc84a.html, оценка из 5, голосов 10
|