2014-12-29 2 views
0

Я хочу сделать приложение, способное обнаруживать и отслеживать объект с помощью камеры Kinect.Обнаружение SURF EmguCV не обнаружено должным образом

Я использовал алгоритм SURF для поиска объекта, точно так же, как описано в детекторе свойств SURF от EmguCV в CSharp и в примере EmguCV «SURFFeature». Я снимаю изображение с камеры, чтобы обнаружить и показать его в маленьком ящике с изображением, в то время как изображение камеры находится в большой картинной коробке. Но когда я взял фотографию объекта, алгоритм SURF начинает выполнять некоторые полностью случайные совпадения. Объекты отслеживания должны иметь красный прямоугольник вокруг него, но ничего не происходит, и соответствующие векторные линии указывают на совершенно разные объекты.

Я использую Visual Studio 2010 с Kinect для Windows SDK 1.8 и EmguCV 2.4.10.

Вот фотографии, показывающие ситуацию:

Попытка захватить игрушки шарик на веревке. enter image description here

Попытка захватить книгу. enter image description here

Может ли кто-нибудь помочь мне узнать, почему SURF не обнаруживает, что объекты правильно? Что я делаю не так?

+0

Пожалуйста, предоставить образец кода, так что мы можем указать, где вы можете идти не так. – seebiscuit

+0

Я использую код SURF с сайта [EmguCV] (www.emgu.com/wiki/index.php/SURF_feature_detector_in_CSharp). Я не мог дать ссылку, потому что у меня недостаточно репутации. Код, выполняющий этот метод, [здесь] (http://wklej.org/id/1579131/). После выполнения этого метода изображение отправляется в окно изображения. – MrDark

ответ

0

Попробуйте, SIFTDetector вместо SURFDetector. Это дало мне лучшие результаты.

//SURFDetector surfDetector = new SURFDetector(500, false); SIFTDetector surfDetector = new SIFTDetector();

Эти ссылки дают сравнение алгоритмов обнаружения особенность.

http://computer-vision-talks.com/articles/2011-08-19-feature-descriptor-comparison-report/

http://computer-vision-talks.com/articles/2011-01-04-comparison-of-the-opencv-feature-detection-algorithms/

+0

Большое спасибо за ваш ответ. Несчастливо, изменение алгоритма не улучшило мою ситуацию. Я прикрепляю экран при попытке обнаружить книгу: [link] (http://i.imgur.com/0WSICpL.png). Количество точек в книге довольно высокое, но оно по-прежнему не делает красной прямоугольной выборки вокруг него. Возможно ли быть ошибкой нитей? Я создаю делегат Action, в котором я создаю растровое изображение результата и применяю его к pictureBox.Image, а затем вызываю делегата в поле изображения. Или, может быть, дело в элементах управления pictureBox? – MrDark

+0

Можете ли вы предоставить мне полный код? Чтобы я мог посмотреть и попытаться помочь вам. –

Смежные вопросы