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


import os
# Импортируем функцию из файла crop.py
from crop import find_chessboard_strictly_1to1


def save_human_readable_board(board_matrix, output_txt="human.txt"):
    """Записывает текстовую доску 8x8 с символами [X] и [ ] в файл."""
    if not board_matrix:
        print("[Ошибка] Матрица доски пуста.")
        return

    with open(output_txt, "w", encoding="utf-8") as f:
        for row in board_matrix:
            line = "".join(["[X]" if cell else "[ ]" for cell in row])
            f.write(line + "\n")

    print(f"[OK] Текстовая схема доски сохранена в: {output_txt}")


def process_board_logic(input_image_path="board1.png"):
    """Главная управляющая функция логики."""
    if not os.path.exists(input_image_path):
        print(f"[Ошибка] Файл {input_image_path} не найден.")
        return

    # 1. Получаем данные из crop.py (всё в памяти, без сохранения картинок на диск)
    board_matrix, cropped_board = find_chessboard_strictly_1to1(input_image_path)

    if board_matrix is None:
        print("[Ошибка] Не удалось обработать доску.")
        return

    # 2. Сохраняем текстовый файл human.txt
    save_human_readable_board(board_matrix)

    # 3. Задел на будущее: картинку cropped_board можно напрямую
    # пересылать в analysis.py, когда он будет готов
    # Example:
    # pieces_data = analysis.detect_pieces(cropped_board)


if __name__ == "__main__":
    process_board_logic("board1.png")