Я пытаюсь взять изображения игральных карт и извлечь информацию о них, используя некоторую форму соответствия шаблонов. Для начала я использую гауссово размывание, серую шкалу преобразование, а затем создать пороговый на binarised изображения, и они были довольно эффективны при выделении карты в качестве единственных реальных деталей в изображениях:Шаблон соответствия в игральных карточках
Однако, прежде чем переходить к следующему шагу (надеюсь, используя материал для сопоставления шаблонов OpenCV), я боролся с двумя вещами: во-первых, чтобы эти образы нуждались в дополнительной обработке перед сопоставлением шаблонов? Например, нужно ли мне анализировать масштаб и ориентацию карт? Быстрое замечание: шаблон, который я собирался использовать, - это угол карты с рейтингом и масти (он находится в ссылке выше). Я концептуально понимаю, что вы можете потенциально выбрать всю область, найдя четыре угла с внутренними углами, но я довольно не знаю, как это реализовать. Во-вторых: существует ли конкретный алгоритм сопоставления с шаблонами, который лучше всего подходит для такого рода работ? Я предпочел бы сделать некоторую обработку перед сопоставлением шаблонов, а не с помощью грубой силы, соответствующей нескольким типам одного и того же изображения (повернутым и масштабированным для учета различий в каждой фотографии).
Итак, сводка: мне нужно сделать еще некоторую обработку для масштабирования и ориентации перед сопоставлением (и если да, предлагаемые алгоритмы?), И какой алгоритм соответствия шаблонов был бы лучшим подходом к этой проблеме?
Я думаю, что идеальным решением является поиск всей карты и формирование отдельного изображения, где оно масштабируется и позиционируется для сопоставления шаблонов, а затем с использованием алгоритма соответствия, но я не уверен, что это даже возможно! Любая помощь очень ценится.
Это будет определенный набор карт. Должен ли я найти контуры с порогового изображения, или понадобится ли Canny? Также знаете ли вы какой-либо метод OpenCV для сопоставления обратного преобразования перспективы? Я искал ресурс, описывающий, как реализовать этот процесс, но я пытался понять. Я знаю, что обратное преобразование перспективы поместит карту прямо, но более тонкие детали беспокоят меня. –
Еще один комментарий, я читал, что можно было создать обратную перспективу из угловых координат карты. Используя Canny или созданные мной двоичные изображения, можно ли обнаруживать карты и находить их углы, а с их обратной стороны - смотреть прямо на карту? –
Вы можете использовать обнаружение кромок (например, canny) на пороговом изображении, чтобы получить изображение, на которое вы можете использовать преобразование hough. Затем вы можете обнаружить углы, найдя пересечения линий. Хотя полное 3D-решение, которое использует калибровочные матрицы камеры, было бы предпочтительным, вы можете просто взять изображение карты, отменить ее, чтобы сделать это прямо и перейти оттуда. Должен дать достаточно хороший результат. – Photon