파이썬 비활성 이미지 서치 - paisseon bihwalseong imiji seochi

import pyautogui as pag import keyboard import time while True: if keyboard.is_pressed("F4"): # F4 누른게 감지되면 t1 = pag.position() # 위치 뽑아서 저장 print(t1) time.sleep(0.5) break while True: if keyboard.is_pressed("F4"): t2 = pag.position() print(t2) time.sleep(0.5) break

이 코드를 실행하면 while문으로 들어가서 대기상태가 됩니다.

이 상태에서 F4를 누르면 마우스 위치 좌표를 t1(타겟 이미지 시작점) 변수에 저장하고 출력까지 해줍니다. 확인이 가능하다는 거죠.

그리고 0.5초 뒤에 다시 대기 상태로 들어갑니다. 그 다음 while문에서 쭉 대기하는 겁니다.

동일한 방법으로 F4를 누르면 t2 변수(타겟 이미지 끝점)에 위치를 저장하고 코드가 종료됩니다.

그냥 pag.position을 이용하는 것보다 이렇게 하면 코드는 좀 길지만 손쉽게 좌표를 저장할 수 있습니다.

저 코드에서 t1 -> f1으로, t2 -> f2로 바꿔서 사용하게 되면 f1, f2도 손쉽게 저장할 수 있습니다.

이 코드를 통해서 우리는 t1, t2, f1, f2 좌표를 미리 확보해야 합니다. 다시 한번 이미지를 잘 보시기 바랍니다. ㅎㅎ

2. 타겟 이미지 저장

타겟 이미지 저장은 어렵지 않습니다.

시작점 좌표 x , y 와 저장하려는 이미지의 너비(w), 높이(h)를 region에 기입해주면 됩니다.

region1 = (t1[0], t1[1], t2[0]-t1[0], t2[1]-t1[1]) pag.screenshot("D:/temp/find.png", region = region1)

한번 지정된 주소에 파일이 생겼는지, 그림이 제대로 저장됐는지 확인해 보시길 바랍니다. ㅎㅎ

잘 되었다면 다음 단계로 넘어가면 됩니다.

3. 이미지 서치

이름도 긴 locateAllOnScreen함수는 여러개를 뭉탱이로 결과를 반환하기 때문에 리스트 형태로 바꿔서 확인합니다.

p_list = pag.locateAllOnScreen("D:/temp/find.png", confidence = 0.98) p_list = list(p_list) k = 0 if len(p_list) == 0 : # 전체 화면상에서 찾는 이미지가 없는 경우 print("이미지 없음") else : # 전체 화면 상에서 찾는 이미지가 있는 경우 for p in p_list: ctr = pag.center(p) if ctr[0] >= f1[0] and ctr[0] = f1[1] and ctr[1]

Toplist

최신 우편물

태그