Я использую OpenCV для обнаружения квадратов на изображении. Пример Squares.c очень помогает, но моя проблема в том, что он распознает почти все, что имеет 4 угла, близких к 90 градусам.
Моя цель, однако, состоит в том, чтобы распознавать только настоящие квадраты на изображении из видеопотока. Это означает, что сами объекты имеют 4 ребра одинаковой длины и 4 угла по 90 градусов. На первый взгляд это звучит довольно просто, но поскольку объект на изображении может быть наклонен, углы могут варьироваться от 45 до 135 градусов, а края имеют разную длину. Если я проверю эти атрибуты, я все еще распознаю прямоугольники, которые не являются квадратами.
Я уже несколько дней думаю о хорошем решении, позволяющем распознавать только настоящие квадраты, но все, что я придумал, все еще ошибочно. Интересно, знает ли кто-нибудь из вас, каково точное соотношение между углами углов и длиной ребра. С моими догадками до сих пор я продвинулся довольно далеко, но иногда появляются случайные квадраты, которые я не хочу распознавать. Я действительно думаю, что есть какое-то математическое соотношение, но я не могу найти формулу для квадратов в перспективе.
Любая помощь будет действительно оценена!