Я начал использовать OpenCV несколько дней назад, моя цель — обнаружить круг и его центр, я использовал грубое преобразование, я использую веб-камеру с разрешением 640×480,
Это работает, но круг продолжает менять свою позицию, чтобы лучше объяснить это, я разместил скриншот на YouTube https://www.youtube.com/watch?v=6EGePHkGrok
Вот код http://pastebin.com/zRG4Yfzy ,да, я знаю, это немного грязно.
Сначала показывается полное видео, когда камера стабилизируется, я нажимаю ESC, затем начинается обработка на ROI 250×250.
Я добавил несколько трекбаров для изменения параметров грубого преобразования и степени размытия, изменение степени размытия не решает проблему
Как стабилизировать круг? Также камера не будет двигаться, поэтому отслеживание не требуется.
Или я должен принять совершенно новый способ сделать это?
Согласно моему пониманию, мне нужно применить какой-то фильтр.
Объект имеет много круговых контуров, но все они имеют один и тот же центр, поэтому любой из круговых контуров обнаруживается в порядке.
PS: я не эксперт по обработке изображений, я исправил код с разных сайтов и книг
Известно, что преобразования Hough подвержены ошибкам.
В вашем случае вы можете найти контуры на изображении и отфильтровать их по крутизне.
1- оттенки серого
2- фильтр низких частот (размытие по Гауссу)
3 — обнаружение острых краев
4 — найти контуры и перечислить их области.
5- Нарисуйте минимум окружающих кругов к вашим контурам.
6 — выберите контур, который имеет минимальную область окружающего круга, ближайшую к области контура.
7 — найти центр масс контура, используя моменты Тип F3 «Центры масс»
Других решений пока нет …