Ответ 1
Кажется, я нашел возможное решение. Я реализовал его на Mathematica и смог объяснить основные шаги.
- Использовать оператор углов поиска и принимать самые сильные углы. Используйте оператора Харриса.
-
Найти контуры (cv:: FindContours).
-
Для каждого угла в каждом контуре нарисуйте круг и найдите точку пересечения между окружностью и контуром. В OpenCV нет готовой функции, и вы должны реализовать ее самостоятельно.
-
Теперь для каждого угла у вас есть координаты трех точек: угол и две точки по бокам контура. Достаточно оценить углы с помощью dot product:
Результат: