728x90
locateCenterOnScreen은 pyautogui의 기능 중 하나로,
지정된 이미지를 찾아 그 찾은 곳의 중간 x,y 좌표를 알아내는 코드입니다.
흔히, 이미지의 좌표값을 모를 때 사용됩니다. ( 외부 앱의 버튼의 좌표 등 )
import pyautogui
pyautogui.locateCenterOnScreen('Hello.png')
위 코드와 같이 사용하며, 위 코드를 실행시키면 폴더 내의 Hello.png와 같은 게 있는지 화면상에서 찾아줍니다.
찾아준 x, y의 값을 변수에 저장하려면 아래와 같이 작성하면 됩니다.
import pyautogui
x, y = pyautogui.locateCenterOnScreen('Hello.png')
또한, confidence를 추가하여 일치율이 일정 값 이상이면 감지하게 할 수도 있습니다.
(OpenCV를 설치해야함.)
import pyautogui
x, y = pyautogui.locateCenterOnScreen('Hello.png', confidence=0.7)
confidence를 이용하면,
이미지의 미묘한 변화, 밝기의 차이, 윈도우의 야간 모드(블루라이트 필터) 상황에서도
문제없이 감지할 수 있습니다.
confidence가 없을때는 100% 일치해야만 인식하는 것을 보아
스크린샷을 찍어 감지하는 것 같습니다.
또한, 1920x1080 해상도에서는 실행시간이 1~2초 정도 걸린다는 것을 보아
위에서 아래로 차례로 감지하는 듯 합니다.
따라서, 저의 경우에는 confidence를 추가하여 블루라이트 필터가 적용됐거나, 이미지에 미묘한 변화가 있을 때
인식을 할 수 있게 만들었습니다.
grayscale을 추가하여 이미지를 흑백으로도 구별할 수 있습니다.
import pyautogui
x, y = pyautogui.locateCenterOnScreen('Hello.png', grayscale=True, confidence=0.7)
locateCenterOnScreen 속성
이름 | 기능 | 값 | 기본값 |
confidence | 정확도 설정. | 0.x | 1.0 |
grayscale | 흑백으로 구별할지 설정. | True, False | False |
728x90
'배운 것들 > python' 카테고리의 다른 글
[Python] Pywebview를 이용한 웹뷰앱 만들기! - 2 (4) | 2021.02.22 |
---|---|
오류-python | error: Microsoft Visual C++ required 오류 해결 방법 [error: Microsoft Visual C++ OO.O or greater is required. Get it with "Microsoft C++ Build Tools"] (0) | 2021.02.14 |
[Python] Pywebview를 이용한 웹뷰앱 만들기! - 1 (1) | 2021.02.06 |
python Pyinstaller 오류 관련 (0) | 2021.01.27 |
Python 기본 연습 - 1.print (0) | 2021.01.24 |