Как обнаружить маленькие капли, используя EmguCV? - PullRequest
0 голосов
/ 24 февраля 2011

Я пытаюсь отследить положение робота с помощью веб-камеры. Однако, поскольку у меня нет особого доступа к роботу или среде, я работал со снимками с веб-камеры.
Робот имеет 5 ярких светодиодов, расположенных стратегически, которые достаточно отличаются по цвету от робота и окружающей среды, чтобы их можно было легко изолировать.
Я смог сделать это с помощью EmguCV, в результате чего получилось двоичное изображение, подобное приведенному ниже. Теперь у меня вопрос, как мне определить положение пяти сгустков и использовать их для определения положения и ориентации робота?

image

Я экспериментировал с классом Emgu.CV.VideoSurveillance.BlobTrackerAuto, но он упрямо отказывается обнаруживать пятна на изображении выше. Будучи немного новичком, когда дело доходит до всего этого, я не уверен, что я мог делать неправильно.
Итак, что было бы лучшим методом для определения местоположения пятен на изображении выше?

Ответы [ 3 ]

2 голосов
/ 24 февраля 2011

Я не могу рассказать вам, как это сделать, в частности, с emgucv, вам нужно перевести вызовы из opencv в emgucv.Вы бы использовали cv :: findContours , чтобы получить капли, и cv :: moment , чтобы получить позицию капли (формула для получения средних точек капли находится вдокументация cv::moments).Тогда вы будете использовать cv :: valuRigidTransform , чтобы получить положение и ориентацию робота.

0 голосов
/ 31 декабря 2013

Я написал модуль Python для этой цели.

http://letsmakerobots.com/node/38883#comments

0 голосов
/ 24 февраля 2011

Я использую библиотеку cvBlob для работы с каплями. Вчера я работал с ним, чтобы обнаружить маленькие капли и отлично работает.

...