Использование OpenCV для обнаружения кнопок одежды на листе бумаги - PullRequest
5 голосов
/ 15 июля 2010

У меня нет опыта в компьютерном зрении, но мне было интересно узнать, как я могу использовать библиотеку OpenCV для достижения следующих целей:

У меня есть банка запасных кнопок, разных по цвету, стилю и диаметру. По большей части они круглые. Я равномерно разбрасываю их на листе белой бумаги и при хорошем освещении делаю снимки с довольно высоким разрешением с помощью обычной цифровой камеры. Как бы я обрезал это изображение, чтобы захватить каждую кнопку отдельно как отдельный объект / изображение?

Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 16 июля 2010

Два возможных способа:

1) Использование кругового преобразования по кругу Вы запускаете некоторый детектор краев (canny / sobel), а затем преобразуете грубое преобразование по кругу.Вы получите круги.

2) Использование контуров Разделите кнопку и фон с помощью порога.Определите контуры в этом пороговом изображении, и у вас есть кнопки!

Статьи, которые могут помочь:

Отказ от ответственности: Это ссылки на мой сайт.

2 голосов
/ 15 июля 2010

Я думаю, что самое простое, что вы можете попробовать: запустить детектор краев Canny и применить преобразование Хафа, чтобы обнаружить круги и сгенерировать отдельное изображение из каждого из них.

1 голос
/ 15 июля 2010

Я немного узнал блюдо, и это сработало довольно хорошо.сделайте это:

Выполните некоторую настройку порога (кнопки должны быть светлее фона), чтобы оставить только кнопки,

, затем cvFindContours

для каждого контура:

  • запустите cvFitEllipse, он вернет вам обе оси (a, b) подогнанного эллипса.
  • проверьте, что площадь эллипса PI a b похожа на площадьконтур с использованием cvContourArea, а также то, что обе оси похожи a = b.(это оставит только круги)
  • тогда вы можете делать все, что вам нужно.printContour, используя cvPrintContour, используйте cvMinAreaRect2, чтобы получить ограничивающий прямоугольник кнопки и т. д.

Возможно также грубое преобразование, но оно значительно дороже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...