2014-12-17 3 views
10

ФОН

Так я создаю программу, которая распознает шахматные ходы. До сих пор я реализовал множество алгоритмов для достижения наилучших результатов. То, что я нашел до сих пор, состоит в том, что комбинация неискаженного изображения (с использованием неискаженного), затем применение алгоритма выравнивания гистограммы и, наконец, алгоритм goodFeaturesToTrack (я считаю, что это лучше, чем обнаружение угла Harris) дает довольно приличный Результаты. Цель здесь состоит в том, чтобы каждый угол каждого квадрата учитывался точкой. Таким образом, когда я применяю обнаружение canny edge, я могу обрабатывать отдельные квадраты.OpenCV: Лучший способ обнаружения углов на шахматной доске

Пример

enter image description here

ЧТО Я СЧИТАЕТСЯ

http://www.nandanbanerjee.com/index.php?option=com_content&view=article&id=71:buttercup-chess-robot&catid=78&Itemid=470

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

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

ВОПРОС

Как вы можете видеть, точки достаточно точны в течение большей части квадратов (хотя есть случайные моменты, которые не делают то, что я хочу). Мой вопрос в том, как вы думаете, лучший способ найти все углы на шахматной доске (я открыт для всех идей), и вы могли бы дать мне несколько подробное описание (достаточно, чтобы направить меня в правильном направлении или больше, если вы выберете :)? Кроме того, (и это второстепенный вопрос) есть ли у вас какие-либо рекомендации относительно того, как действовать, чтобы лучше всего распознать ход? Я пытаюсь реализовать несколько способов сделать это, и я собираюсь сравнить методы для получения наилучших результатов! Спасибо.

ответ

7

Пожалуйста, прочитайте эти две ссылки:

http://www.aishack.in/tutorials/sudoku-grabber-opencv-plot/

How to remove convexity defects in a Sudoku square?

+0

Спасибо. Я просмотрел эти статьи, и они обеспечили приятное понимание. Благодаря! – user1243

+0

dead link, уточните пожалуйста –

+0

@StepanYakovenko обновленный. – guneykayim

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