Загрузка данных


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}'. Проверьте путь!")