使うサイズのスクショを取って一致する部分を探しました。
python
1#coding:utf-8
2import cv2
3
4#画像をグレースケールで読み込む
5img = cv2.imread("img.png", 0)
6temp = cv2.imread("temp.png", 0)
7
8#マッチングテンプレートを実行
9#比較方法はcv2.TM_CCOEFF_NORMEDを選択
10result = cv2.matchTemplate(img, temp, cv2.TM_CCOEFF_NORMED)
11
12#検出結果から検出領域の位置を取得
13min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
14top_left = max_loc
15w, h = temp.shape[::-1]
16bottom_right = (top_left[0] + w, top_left[1] + h)
17
18#検出領域を四角で囲んで保存
19result = cv2.imread("img.png")
20cv2.rectangle(result,top_left, bottom_right, (255, 0, 0), 2)
21cv2.imwrite("result11.png", result)
22
23
24
25
#追記
皆さんが使う事は無いと思いますが左上からの0,0 相対座標を載せて起きます。
720x310 Onboardのsize
,,画面内 相対位置 座標
python
1
2
3"""
4import pandas as pd
5# csv headerなし 縦列の1,2,3行目 かつ 横列の3行目から取得
6df = pd.read_csv('memo.csv',header=None, usecols=[0,1,2],skiprows=2)
7l=df.values.tolist()
8
9# 確認
10from pprint import pprint
11pprint(l)
12
13
14r=[]
15
16# 座標をintに変換 コメントをstrに変換
17for i in l:
18 r.append([int(i[0]),int(i[1]),str(i[2])])
19
20#確認
21pprint(r)
22
23
24"""
25
26
27
28l=[[25, 50, 'Esc'],
29 [80, 50, 'F1'],
30 [115, 50, 'F2'],
31 [150, 50, 'F3'],
32 [190, 50, 'F4'],
33 [245, 50, 'F5'],
34 [285, 50, 'F6'],
35 [325, 50, 'F7'],
36 [360, 50, 'F8'],
37 [415, 50, 'F9'],
38 [450, 50, 'F10'],
39 [490, 50, 'F11'],
40 [525, 50, 'F12'],
41 [580, 50, 'PrintScreen'],
42 [615, 50, 'Scroll'],
43 [655, 50, 'Pause'],
44 [700, 50, 'closs'],
45 [25, 100, 'ze'],
46 [60, 100, '1'],
47 [100, 100, '2'],
48 [135, 100, '3'],
49 [170, 100, '4'],
50 [210, 100, '5'],
51 [245, 100, '6'],
52 [285, 100, '7'],
53 [320, 100, '8'],
54 [355, 100, '9'],
55 [390, 100, '0'],
56 [430, 100, '-'],
57 [465, 100, '^'],
58 [520, 100, 'BackSpace'],
59 [580, 100, 'Ins'],
60 [615, 100, 'Home'],
61 [650, 100, 'PgUp'],
62 [700, 100, '-----'],
63 [35, 145, '-----'],
64 [80, 145, 'q'],
65 [120, 145, 'w'],
66 [155, 145, 'e'],
67 [190, 145, 'r'],
68 [230, 145, 't'],
69 [265, 145, 'y'],
70 [305, 145, 'u'],
71 [340, 145, 'i'],
72 [373, 145, 'o'],
73 [415, 145, 'p'],
74 [450, 145, '@'],
75 [485, 145, '['],
76 [530, 160, 'Ente'],
77 [580, 145, 'Del'],
78 [615, 145, 'End'],
79 [655, 145, 'PgDn'],
80 [700, 170, 'Abc'],
81 [40, 190, '__'],
82 [90, 190, 'a'],
83 [125, 190, 's'],
84 [165, 190, 'd'],
85 [205, 190, 'f'],
86 [235, 190, 'g'],
87 [275, 190, 'h'],
88 [310, 190, 'j'],
89 [350, 190, 'k'],
90 [385, 190, 'l'],
91 [420, 190, ';'],
92 [460, 190, ':'],
93 [495, 190, ']'],
94 [25, 235, 'Shift'],
95 [75, 235, '<'],
96 [115, 235, 'z'],
97 [150, 235, 'x'],
98 [185, 235, 'c'],
99 [220, 235, 'v'],
100 [255, 235, 'b'],
101 [295, 235, 'n'],
102 [330, 235, 'm'],
103 [370, 235, ','],
104 [410, 235, '.'],
105 [445, 235, '/'],
106 [500, 240, 'Shift'],
107 [620, 235, '↑'],
108 [580, 285, '←'],
109 [615, 285, '↓'],
110 [655, 285, '→'],
111 [700, 270, '123'],
112 [25, 285, 'Ctrl'],
113 [85, 285, 'Super'],
114 [135, 285, 'Alt'],
115 [255, 285, 'sp'],
116 [405, 285, 'Alt Cr'],
117 [440, 285, 'Super'],
118 [485, 285, 'Menu'],
119 [530, 285, 'Ctrl']]
120
121