Рассчитать, если пересечение между полигоном и растровым изображением - PullRequest
1 голос
/ 09 марта 2012

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

У меня есть несколько идей на этот счет, исходя из определения столкновения или алгоритма заполнения, но я не думаю, что они будут оптимальными.Я уверен, что есть проверенный метод для этого, но не могу вспомнить ключевые слова.

Вот пример того, что я имею в виду:

enter image description here

В этом случае он должен вернуть true.

1 Ответ

2 голосов
/ 09 марта 2012

Я бы порекомендовал следующий алгоритм:

Пройдите границу многоугольника, используя алгоритм Брезенхэма для каждой линии, и в каждом пикселе выберите растр.Если это цвет, который вы признаете видимым, например ненулевой альфа, сообщите о пересечении.

Преимущество заключается в том, что вы работаете только с краями многоугольника, поэтому вам не нужно перебирать все пиксели внутри многоугольника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...