Chess Board Extractor

Jan 11, 2023 11:26


Написал небольшую программу, которая на скане страницы книги определяет «шахматную диаграмму» и вырезает её (или отмечает красным квадратом).

Ссылка на проект: https://github.com/mcroitor/chessboard_extractor

Саму программу (точнее, их 2) можно скачать здесь: https://github.com/mcroitor/chessboard_extractor/releases/tag/0.0.2



В пакете две программы:

  • markboards - отмечает диаграммы на страницы
  • extractboards - вырезает диаграммы.

На самом деле программы определяют на рисунке квадраты, но на первых порах должно хватить.

Как с этим работать?

простейший способ:

  1. создайте в папке с программами папку in.
  2. в созданную папку перепишите сканы книги (tif, png, не рекомендуемый jpeg). PDF не поддерживается.
  3. откройте в блокноте файл config.ini.
  4. в строке format укажите расширение сканов.
  5. Для хорошего определения диаграмм укажите минимальный и максимальный возможные размеры в точках (min_board_size и max_board_size). Например, при размерах доски в 800 пикселей подойдут значения 700 и 900. Хотя можете навсегда выставить 200 и 1600, однако за качество распознавания не ручаюсь.
  6. Запустите программу extractboards. 
  7. Будет создана папка с диаграммами. Если запустите markboards, то в результате будет создана папка с теми же страницами, но диаграммы будут обведены красным прямоугольником.
Не все диаграммы нашлись

Попробуйте поиграться с настройками:

  • blur_size - может быть только нечётный, необходим для сглаживания разрывов.
  • blur_standard, blur_median, blur_gaussian - включение / отключение соответствующих алгоритмов размытия
  • contour_delta - отступ контура
  • gap - значение ошибки в пикселях. Применяется, например, для определения «почти квадратов»
  • treshold - используется в алгоритме Канни для определения ребер. В принципе, это очень неплохое значение, меняйте его в последнюю очередь.

программирование, шахматные диаграммы, скан

Previous post Next post
Up