1번째 줄: |
1번째 줄: |
| == 개요 == | | == 개요 == |
| 마우스 조작을 위한 라이브러리. | | 마우스 조작을 위한 라이브러리. |
| + | |
| + | pag를 약자로 사용하는 편이다. |
| + | |
| + | === 설치 === |
| + | pip install pyautogui |
| | | |
| == 기본 조작 == | | == 기본 조작 == |
11번째 줄: |
16번째 줄: |
| |마우스의 현재좌표 얻기 | | |마우스의 현재좌표 얻기 |
| |코드를 실행하면 마우스의 좌표를 지속적으로 표시해준다. | | |코드를 실행하면 마우스의 좌표를 지속적으로 표시해준다. |
| + | 주피터노트북 같은 경우 1회만 표시한다. |
| |<syntaxhighlight lang="python"> | | |<syntaxhighlight lang="python"> |
| import pyautogui as pag | | import pyautogui as pag |
46번째 줄: |
52번째 줄: |
| |이미지의 일부를 저장할 수 있다. | | |이미지의 일부를 저장할 수 있다. |
| | | |
− | x, y가 좌측 상단이 되게끔 지정하면 된다. | + | x, y가 좌측 상단이 되게끔 지정하면 된다.(좌표값이 없으면 전체 이미지 저장) |
− | |pag.screenshot('파일명.jpg?, region(x, y, width, height)) | + | |pag.screenshot('파일명.png, region=(x, y, width, height)) |
| |- | | |- |
| |이미지 서치 | | |이미지 서치 |
− | |특정 이미지를 찾아준다. | + | |특정 이미지를 찾아준다. 여러개인 경우도 리스트 안에 Box객체로, 좌측상단의 좌표와 폭, 높이를 반환한다. |
− | confidence는 정확도를 의미한다. | + | Box객체는 pyautogui 안의 center함수로 중심점을 쉽게 찾을 수 있다.(Point객체로 반환한다.) |
− | |pag.locateAllOnScreen('파일명', confidence=0.95) | + | confidence는 정확도를 의미한다. 이 옵션은 opencv가 설치된 경우에만 사용 가능. |
| + | |
| + | 문제는, 픽셀 하나 옮기는 영역에서도 해당 이미지와 비슷하다고 판단하여 가져와버린다는 점. 정확도를 낮추면서 옆으로 이동한 픽셀은 제거하는 편이 좋겠다.(아, 어차피 클릭할거라면 상관 없나;; 한번만 클릭해야 한다면 조정할 필요가 있다.) |
| + | |
| + | (배경의 영향을 받지 않으려면 배경을 포함하지 않는 이미지를 사용해야 한다. 사람 그림을 찾는다면 사람의 얼굴 전체가 아니라, 얼굴형 안쪽의 이목구비만 사용한 이미지.) |
| + | |<syntaxhighlight lang="python"> |
| + | p_list = pag.locateAllOnScreen('파일명', confidence=0.95) |
| + | p_list = list(p_list) # 리스트로 바꾸어주어야 내용을 볼 수 있다. |
| + | |
| + | #-----중심점 찾기. |
| + | for p in p_list: |
| + | p_center = pag.center(p) |
| + | # 아래는 특정 화면에서만 찾게 할 경우. 필터링. |
| + | if p_center[0] > 관찰할좌측x좌표 and p_center[0] < 관찰할우측x좌표 and \ |
| + | p_center[1] > 관찰할하단y좌표 and p_center[1] < 관찰할상단y좌표 |
| + | |
| + | </syntaxhighlight> |
| |} | | |} |
| [[분류:라이브러리]] | | [[분류:라이브러리]] |