2015-10-01 7 views
1

Я пытаюсь взять изображения игральных карт и извлечь информацию о них, используя некоторую форму соответствия шаблонов. Для начала я использую гауссово размывание, серую шкалу преобразование, а затем создать пороговый на binarised изображения, и они были довольно эффективны при выделении карты в качестве единственных реальных деталей в изображениях:Шаблон соответствия в игральных карточках

http://imgur.com/a/y1H7F

Однако, прежде чем переходить к следующему шагу (надеюсь, используя материал для сопоставления шаблонов OpenCV), я боролся с двумя вещами: во-первых, чтобы эти образы нуждались в дополнительной обработке перед сопоставлением шаблонов? Например, нужно ли мне анализировать масштаб и ориентацию карт? Быстрое замечание: шаблон, который я собирался использовать, - это угол карты с рейтингом и масти (он находится в ссылке выше). Я концептуально понимаю, что вы можете потенциально выбрать всю область, найдя четыре угла с внутренними углами, но я довольно не знаю, как это реализовать. Во-вторых: существует ли конкретный алгоритм сопоставления с шаблонами, который лучше всего подходит для такого рода работ? Я предпочел бы сделать некоторую обработку перед сопоставлением шаблонов, а не с помощью грубой силы, соответствующей нескольким типам одного и того же изображения (повернутым и масштабированным для учета различий в каждой фотографии).

Итак, сводка: мне нужно сделать еще некоторую обработку для масштабирования и ориентации перед сопоставлением (и если да, предлагаемые алгоритмы?), И какой алгоритм соответствия шаблонов был бы лучшим подходом к этой проблеме?

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

ответ

1

Если вы работаете с определенным набором карточек, то все, что вам нужно сделать (при условии, что карты не пересекаются), состоит в том, чтобы найти контуры (http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/find_contours/find_contours.html) карт, сопоставить обратное преобразование перспективы, чтобы получить изображение с прямой картой, а затем используйте соответствующий шаблон.

Если, однако, вы хотите быть более устойчивыми к изменениям колоды, вам также может потребоваться определить внутренние контуры цифр/букв/форм костюма и распознать их для классификации карты.

+0

Это будет определенный набор карт. Должен ли я найти контуры с порогового изображения, или понадобится ли Canny? Также знаете ли вы какой-либо метод OpenCV для сопоставления обратного преобразования перспективы? Я искал ресурс, описывающий, как реализовать этот процесс, но я пытался понять. Я знаю, что обратное преобразование перспективы поместит карту прямо, но более тонкие детали беспокоят меня. –

+0

Еще один комментарий, я читал, что можно было создать обратную перспективу из угловых координат карты. Используя Canny или созданные мной двоичные изображения, можно ли обнаруживать карты и находить их углы, а с их обратной стороны - смотреть прямо на карту? –

+0

Вы можете использовать обнаружение кромок (например, canny) на пороговом изображении, чтобы получить изображение, на которое вы можете использовать преобразование hough. Затем вы можете обнаружить углы, найдя пересечения линий. Хотя полное 3D-решение, которое использует калибровочные матрицы камеры, было бы предпочтительным, вы можете просто взять изображение карты, отменить ее, чтобы сделать это прямо и перейти оттуда. Должен дать достаточно хороший результат. – Photon

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