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