В настоящее время я работаю над роботизированным проектом: робот должен захватить куб с помощью камеры Kinect, которая обрабатывает обнаружение куба и вычисляет координаты.Обнаружение куба с использованием C++ и openCV
Я новичок в компьютерном зрении. Сначала я работал над статическим изображением квадрата, чтобы получить базовое понимание. Используя C++ и openCV, мне удалось получить углы (и их координаты пикселя xy) квадрата, используя сглаживание (удаление шума), обнаружение кромок (функция canny), обнаружение линий (преобразование Hough) и пересечение линий (математический расчет) на упрощенная картина (однородный фон).
Регулируя некоторый порог, я могу добиться обнаружения углов, предполагая, что у меня есть только один квадрат и нет функции линии в фоновом режиме.
Теперь мой вопрос: есть ли у вас какое-либо направление/рекомендация/совет/литература о алгоритме распознавания куба?
То, что я нашел до сих пор, включает обнаружение фигуры в сочетании с обнаружением текстуры и/или последовательностью обучения. Более того, в своих приложениях они часто используют вычисления с графическим процессором/параллелизацией, которых у меня нет ...
Kinect также предоставил глубинную камеру, которая дает расстояние от пикселя от камеры. Может быть, я могу использовать это, чтобы обойти «сложную» обработку изображений?
Заранее спасибо.
с использованием глубины изображения является IMHO лучшей идеей. Попробуйте найти самолеты в трехмерном пространстве. Если есть пересекающиеся плоскости, у которых одинаковый размер, это, вероятно, куб. Использование 2D-изображения дает только некоторые проблемы, такие как искажение перспективы и т. Д., Что делает его неоднозначным, является ли объект кубом или просто выглядит как куб с особой точки зрения (если вы не используете несколько изображений из разных позиций) – Micka