Соответствие формы OpenCV - PullRequest
4 голосов
/ 15 марта 2011

Я новичок в OpenCV (на самом деле я использую оболочку Emgu CV C #) и пытаюсь обнаружить объект.

Я пытаюсь определить, соответствует ли объект предопределенному набору объектов (который мне придется определить). Фон хорошо освещен и не двигается. Мои предметы, с которых я начинаю, - это бутылки и банки.

Мой текущий подход: Сделайте absDiff с ранее сделанным фоновым изображением, чтобы отделить фон. Затем увеличьте в 4 раза, чтобы более светлые области (на этикетках) сократились. Затем я делаю двоичный порог, чтобы получить большой блог, после чего нахожу контуры на этом изображении. Затем я беру самый большой контур и рисую его, который становится моей формой, чтобы либо сохранить его в принятом наборе, либо сравнить с принятым набором.

В настоящее время я использую cvMatchShapes, но двойное возвращаемое значение, кажется, широко варьируется. Я предполагаю, что это потому, что это не учитывает ротацию.

Является ли этот подход хорошим? Это не очень хорошо для стеклянных бутылок, так как края трудно найти ...

Я читал о классификаторах Хаара, но думаю, что это может быть излишним для моей задачи.

1 Ответ

5 голосов
/ 09 мая 2011

Может быть, эта ссылка тоже полезна.У вас есть код и библиотека для SIFT, вам просто нужно скомпилировать его.Удачи.

http://blogs.oregonstate.edu/hess/sift-library-places-2nd-in-acm-mm-10-ossc/#more-176

...