""" 座標デバッグ用スクリプト 雀魂のウィンドウから手牌領域をキャプチャして確認 """ import pygetwindow as gw from PIL import ImageGrab import numpy as np import cv2 # ウィンドウを取得 window_title = "雀魂" try: window = gw.getWindowsWithTitle(window_title)[0] print(f"✓ ウィンドウ検出: {window.title}") print(f" 位置: ({window.left}, {window.top})") print(f" サイズ: {window.width}x{window.height}") except IndexError: print(f"✗ '{window_title}' が見つかりません") exit(1) # スクリーンショット取得 screenshot = ImageGrab.grab(bbox=(window.left, window.top, window.right, window.bottom), all_screens=True) frame = np.array(screenshot) frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR) # 手牌座標(live_feed.pyと同じ) PLAYER_HAND_X = 105 PLAYER_HAND_Y = 759 PLAYER_HAND_W = 627 PLAYER_HAND_H = 84 # 座標が画面内か確認 if PLAYER_HAND_Y + PLAYER_HAND_H > frame.shape[0]: print(f"\n⚠ 警告: 手牌のY座標が画面外です") print(f" 画面の高さ: {frame.shape[0]}") print(f" 手牌の範囲: Y {PLAYER_HAND_Y} - {PLAYER_HAND_Y + PLAYER_HAND_H}") # 座標を修正 PLAYER_HAND_Y = frame.shape[0] - PLAYER_HAND_H - 10 print(f" 修正後のY座標: {PLAYER_HAND_Y}") # 手牌領域を抽出 hand_region = frame[PLAYER_HAND_Y:PLAYER_HAND_Y+PLAYER_HAND_H, PLAYER_HAND_X:PLAYER_HAND_X+PLAYER_HAND_W] # 矩形を描画 debug_frame = frame.copy() cv2.rectangle(debug_frame, (PLAYER_HAND_X, PLAYER_HAND_Y), (PLAYER_HAND_X + PLAYER_HAND_W, PLAYER_HAND_Y + PLAYER_HAND_H), (0, 255, 0), 3) # 保存 cv2.imwrite("debug_full_screen.png", debug_frame) cv2.imwrite("debug_hand_region.png", hand_region) print(f"\n保存完了:") print(f" debug_full_screen.png - 全画面(緑の矩形が手牌領域)") print(f" debug_hand_region.png - 手牌領域のみ") print(f"\n手牌領域:") print(f" X: {PLAYER_HAND_X}") print(f" Y: {PLAYER_HAND_Y}") print(f" 幅: {PLAYER_HAND_W}") print(f" 高さ: {PLAYER_HAND_H}") print(f" サイズ: {hand_region.shape}")