Преобразовать растровое изображение в многоугольник - (обратное растрирование) - PullRequest
5 голосов
/ 10 ноября 2008

Учитывая растровое изображение с несколькими пятнами сплошного цвета, какой алгоритм вы бы использовали для построения полигонов той же формы, что и пятна?

Это можно сделать в несколько этапов: многоугольник с высоким разрешением может быть впоследствии сокращен алгоритмом наилучшего соответствия. Бонусные баллы, если вы можете сказать мне, как разрезать полученные многоугольники на выпуклые компоненты, чтобы они могли без проблем отображаться в OpenGL.

Ответы [ 2 ]

4 голосов
/ 10 ноября 2008

Обратное растерирование называется векторизацией . Алгоритмы, как правило, довольно сложные, вот googlet из нескольких из них. Посмотрите редкое отслеживание пикселей и разреженную пиксельную векторизацию для некоторых хороших примеров.

Для хороших алгоритмов разбиения полигонов, посмотрите Джоспе О'Руркса «Вычислительная геометрия в C», ISBN 0-521-44034-3, или найдите вогнутое разбиение полигонов алгоритмы, такие как это

1 голос
/ 10 февраля 2010

Это довольно распространено в ГИС - например, извлечение функций автоматически из аэрофотосъемки. Выбранный инструмент OpenSource:

http://www.gdal.org/gdal_polygonize.html

http://www.gdal.org/gdal__alg_8h.html#3f522a9035d3512b5d414fb4752671b1

...