Как стабилизировать круг из видеопотока с помощью opencv?

Я начал использовать OpenCV несколько дней назад, моя цель — обнаружить круг и его центр, я использовал грубое преобразование, я использую веб-камеру с разрешением 640×480,
Это работает, но круг продолжает менять свою позицию, чтобы лучше объяснить это, я разместил скриншот на YouTube https://www.youtube.com/watch?v=6EGePHkGrok
Вот код http://pastebin.com/zRG4Yfzy ,да, я знаю, это немного грязно.
Сначала показывается полное видео, когда камера стабилизируется, я нажимаю ESC, затем начинается обработка на ROI 250×250.
Я добавил несколько трекбаров для изменения параметров грубого преобразования и степени размытия, изменение степени размытия не решает проблему
Как стабилизировать круг? Также камера не будет двигаться, поэтому отслеживание не требуется.
Или я должен принять совершенно новый способ сделать это?
Согласно моему пониманию, мне нужно применить какой-то фильтр.

Объект имеет много круговых контуров, но все они имеют один и тот же центр, поэтому любой из круговых контуров обнаруживается в порядке.

PS: я не эксперт по обработке изображений, я исправил код с разных сайтов и книг

0

Решение

Известно, что преобразования Hough подвержены ошибкам.

В вашем случае вы можете найти контуры на изображении и отфильтровать их по крутизне.

1- оттенки серого

2- фильтр низких частот (размытие по Гауссу)

3 — обнаружение острых краев

4 — найти контуры и перечислить их области.

5- Нарисуйте минимум окружающих кругов к вашим контурам.

6 — выберите контур, который имеет минимальную область окружающего круга, ближайшую к области контура.

7 — найти центр масс контура, используя моменты Тип F3 «Центры масс»

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]