Add screenshot-driven inventory recognition (v0.2.0)

- New ScreenshotFrame: capture screen / load PNG, two-click bbox,
  threaded template matching, editable preview grid for corrections
- ManualFrame kept as second tab for users who prefer typing counts
- capture.py: screen grab via mss (cross-platform)
- requirements: add mss>=6.0 for screen capture support

Closes the gap from v0.1.0 where users had to manually count
every slab — now they aim, click two corners, and edit any
mis-recognized cell.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Claude
2026-05-13 22:31:27 +09:00
parent 610e979fbb
commit e388c965bc
4 changed files with 544 additions and 115 deletions

View File

@@ -29,6 +29,16 @@
python -m sephiria_inv
```
GUI 는 두 가지 탭으로 구성됩니다.
**스크린샷 탭 (권장)**
1. 게임을 인벤토리 화면 상태로 띄워둔다
2. `화면 캡처` 버튼을 누른다 (또는 `이미지 열기…` 로 미리 찍어둔 PNG)
3. 인벤토리 격자의 좌상단/우하단을 한 번씩 클릭해 영역을 지정한다
4. 자동으로 템플릿 매칭이 돌면서 각 셀의 석판을 인식한다
5. 오인식된 셀이 있으면 클릭해서 직접 교체하고 `이 구성으로 계산` 을 누른다
**수동 선택 탭**
좌측 카탈로그에서 보유한 석판 옆 `+` 버튼으로 개수를 올리고
`최적 배치 계산`을 누르면 됩니다. 결과 이미지는 `이미지 저장…` 으로
PNG 저장이 가능합니다.
@@ -44,15 +54,15 @@ python -m sephiria_inv --cli \
-s harvesting:2 -s binary_star -s thorn -s sheen -s base \
--slots 24 --seed 7 -o layout.png
# 스크린샷에서 인식 (베타)
# 스크린샷에서 인식 (CLI - bbox 수동 지정)
python -m sephiria_inv --cli \
--screenshot ./game.png --bbox 320,180,1024,720 \
--slots 34 -o layout.png
```
`--bbox` 는 인벤토리 격자 영역의 픽셀 좌표(left,top,right,bottom)입니다.
정확도는 스크린샷 해상도/UI 스타일에 따라 다릅니다 — 잘못 인식되는 셀이
있으면 GUI에서 보정해 주세요.
CLI 에서는 `--bbox left,top,right,bottom` 으로 격자 영역을 직접 줘야 합니다.
GUI 에서는 두 번 클릭으로 같은 일을 할 수 있습니다. 인식 정확도는 스크린샷
해상도/UI 스타일에 따라 다르므로 잘못된 셀은 GUI 에서 클릭해 교정하세요.
## 포터블 EXE 빌드