У меня нет знаний в машинном зрении, но мне было любопытно знать, как я мог пользоваться библиотекой OpenCV для достижения следующего:
У меня есть банка запасных кнопок, отсортированных в цвете, стиль и диаметр. По большей части они являются круговыми. Я равномерно рассеиваю их на части отчета, и при хорошем освещении, делаю снимок довольно высокого разрешения с Вашим средним цифровым фотоаппаратом. Как был бы, я заставил о разрезании этого изображения захватывать каждую кнопку индивидуально как отдельный объект / изображение?
Заранее спасибо.
Два возможных способа:
1) Использование преобразования Хафа для окружности. Вы запускаете какой-нибудь детектор краев (canny/sobel), а затем преобразование Хафа для окружностей. Вы получите круги.
2) Использование контуров Разделите кнопку и фон с помощью порогового преобразования. Определите контуры на этом пороговом изображении, и у вас есть кнопки!
Статьи, которые могут помочь:
Отказ от ответственности: Это ссылки на мой сайт.
Я думаю, самое простое, что вы можете попробовать: запустить детектор краев Canny и применить преобразование Хафа для обнаружения окружностей и создать отдельное изображение каждой из окружностей.
Я немного распознал блюда, и это сработало довольно хорошо. сделайте следующее:
Установите порог (кнопки должны быть ярче фона), чтобы оставить только кнопки,
затем cvFindContours
для каждого контура:
Преобразование Хафа также возможно, но оно намного дороже.