25 lines
771 B
Python
25 lines
771 B
Python
import sys
|
|
import cv2
|
|
from hbc.config import GridConfig, TemplateMatchConfig
|
|
from hbc.templates import TemplateLibrary
|
|
from hbc.recognizer import recognize_board
|
|
|
|
image_path = sys.argv[1]
|
|
level = int(sys.argv[2])
|
|
img = cv2.imread(image_path)
|
|
grid = GridConfig.load_json(f"layouts/level{level}.json")
|
|
lib = TemplateLibrary.load(TemplateMatchConfig(templates_dir="templates"))
|
|
board = recognize_board(img, grid, lib)
|
|
for r in range(board.rows):
|
|
row = []
|
|
for c in range(board.cols):
|
|
cell = board.get(r, c)
|
|
if cell.is_brick:
|
|
lab = "ICE"
|
|
elif cell.is_empty:
|
|
lab = "."
|
|
else:
|
|
lab = cell.meta.get("label", "?")
|
|
row.append(f"{lab[:6]:>6}:{cell.meta.get('score', '-')}")
|
|
print(" ".join(row))
|