Найти углы многоугольника, представленного областью маски

BW = poly2mask(x, y, m, n) вычисляет маску двоичной области интереса (ROI), BW, из многоугольника ROI, представленного векторами x и y. Размер BW м-н-н.

poly2mask устанавливает пиксели в BW, которые находятся внутри многоугольника (X, Y) в 1 и устанавливает пиксели вне многоугольника в 0.

Проблема: Учитывая такую бинарную маскуBW из выпуклого четырехугольника, что было бы наиболее эффективным способом определения четырех углов?

Например.,

Лучшее решение на данный момент: использованиеedge чтобы найти ограничивающие линии, выполните преобразование Хафа, чтобы найти 4 линии на изображении края, а затем найдите точки пересечения этих 4 линий или используйте угловой детектор на изображении края. Кажется сложным, и я могуне могу чувствовать себя тамЭто более простое решение.

Btw,convhull Безразлично»т всегда возвращает 4 балла (может быть, кто-то может предложитьqhull варианты, чтобы предотвратить это): он также возвращает несколько точек по краям.

РЕДАКТИРОВАТЬ: Amro»ответ кажется довольно элегантным и эффективным. Но может быть несколькоуглы» на каждом реальном углу, так как пики нет уникальный. Я мог бы кластеризовать их на основе θ и средний "углы» вокруг реального угла, но главной проблемой является использование.order(1:10)

Является10 достаточно, чтобы учесть все углы или это исключит "угол» в реальном углу?

Ответы на вопрос(5)

Ваш ответ на вопрос