Как определить угол с определенной степенью угла

У меня есть изображение с равносторонним треугольником и прямоугольником:
equilateral triangle and a rectangle
И я хочу обнаружить только 3 угла треугольника. Я следую OpenCV Harris углу детектора. Я вижу, что вся угловая точка треугольника имеет порог = 80 (когда все 4 угла - точка порога прямоугольника = 255). Но я не нашел связи между порогом и степенью.

Как найти угол, который находится в диапазоне [55,65], например?
Вот вывод Mat http://pastebin.com/raw.php?i=qNidEAG0

P/s: я очень новичок в CV, надеюсь, что вы можете дать более подробную информацию!

Ответ 1

Кажется, я нашел возможное решение. Я реализовал его на Mathematica и смог объяснить основные шаги.

  • Использовать оператор углов поиска и принимать самые сильные углы. Используйте оператора Харриса. Corners
  • Найти контуры (cv:: FindContours).

    Contours

  • Для каждого угла в каждом контуре нарисуйте круг и найдите точку пересечения между окружностью и контуром. В OpenCV нет готовой функции, и вы должны реализовать ее самостоятельно.

    Intersections

  • Теперь для каждого угла у вас есть координаты трех точек: угол и две точки по бокам контура. Достаточно оценить углы с помощью dot product:

    angle estimation

Результат:

Corners found