Обнаружение игральных карт с помощью OpenCV - на мобильных устройствах - PullRequest
1 голос
/ 15 июля 2011

Я играл вместе с образцами OpenCV lib.и теперь я хочу начать писать код самостоятельно.Однако с огромными возможностями библиотеки я здесь потерян.

«Настройка»: предположим, что на столе лежит игральные карты.Карты будут расположены в 2 ряда, количество карт в ряду не является фиксированным, но имеет определенное количество как макс.Размер и форма карточек у всех одинаковые, но картинки на них разные (правда, не слишком сложные).Код должен быть в состоянии обнаружить каждую карточку (изображение) и ряд карточек.

Проблема: Какое лучшее решение для этого?Хаар?... и т. д. Я просто не знаю, какой самый быстрый подход здесь в зависимости от времени выполнения.Бонусный вопрос: если я хочу сделать это на мобильном устройстве, есть ли другой способ быстрее?

С наилучшими пожеланиями

Ответы [ 2 ]

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

У кого-то еще был похожий вопрос.

Вкратце: попробуйте OpenCV SURF Подробнее см. этот ответ .

0 голосов
/ 19 апреля 2014
  • Возьмите градиентное изображение и примените преобразование Хафа, чтобы получить границы карты.При желании объедините это с адаптивным пороговым значением для сегментирования переднего плана от фона.
  • Используйте SURF для распознавания изображений на карточках.

Для оптимальной скорости вы можете использовать PCA SIFTвместо SURF - он создает векторы объектов, основанные только на ваших изображениях, в отличие от обычного SIFT или SURF, которые создают векторы объектов, вмещающие пространство для описания любого изображения.Таким образом, в вашем поиске совпадений будет намного быстрее.

...