Я пытаюсь обнаружить фигуру (крест) в потоке входного видео с помощью OpenCV. В настоящее время я имею порог, чтобы получить бинарный образ моего креста, который работает очень хорошо. К сожалению, мой алгоритм, чтобы решить, является ли извлеченный blob крест или нет, не работает очень хорошо. Как вы можете видеть на изображении ниже, не все углы обнаруживаются под определенными перспективами.
Я использую findContours()
и approxPolyDP()
, чтобы получить приближение моего контура. Если я обнаруживаю 12 углов/вершин в этой аппроксимированной кривой, blob считается крестом.
Есть ли лучший способ решить эту проблему? Я думал о SIFT, но алгоритм должен выполняться в режиме реального времени, и я читал, что SIFT не подходит для реального времени.