Найти углы многоугольника, представленного областью маски
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
достаточно, чтобы учесть все углы или это исключит "угол» в реальном углу?