import cv2
import numpy as np
def draw_scanner_grid(board_img, output_path="board_debug.png"):
"""
Рисует красную сетку 8x8 и координаты (a-h, 1-8) так,
как их видит и нарезает алгоритм сканера.
"""
# 1. Приводим входящую картинку к 400x400 (именно так делает scan_frame)
board = cv2.resize(board_img, (400, 400))
debug_img = board.copy()
cell_size = 50 # 400 / 8
# 2. Рисуем красные линии сетки (BGR: красный = (0, 0, 255))
for i in range(1, 8):
# Вертикальные линии
cv2.line(debug_img, (i * cell_size, 0), (i * cell_size, 400), (0, 0, 255), 2)
# Горизонтальные линии
cv2.line(debug_img, (0, i * cell_size), (400, i * cell_size), (0, 0, 255), 2)
# 3. Подписываем клетки для наглядности
for row in range(8):
for col in range(8):
rank = str(8 - row)
file = chr(97 + col)
label = f"{file}{rank}"
# Координаты центра клетки
x_center = col * cell_size + 5
y_center = row * cell_size + 15
# Текст поверх клетки
cv2.putText(debug_img, label, (x_center, y_center),
cv2.FONT_HERSHEY_SIMPLEX, 0.35, (0, 255, 255), 1)
# 4. Сохраняем результат
cv2.imwrite(output_path, debug_img)
print(f"[УСПЕХ] Файл с красной сеткой сохранён: '{output_path}'")
print("Откройте этот файл и посмотрите, ровно ли красные линии делят клетки!")
# --- ТЕСТОВЫЙ ЗАПУСК ---
if __name__ == "__main__":
# Замените 'board.png' на путь к вашему скриншоту/изображению
board_path = "board.png"
img = cv2.imread(board_path)
if img is not None:
draw_scanner_grid(img)
else:
print(f"[!] Ошибка: Не удалось открыть файл '{board_path}'. Проверьте путь!")