본문 바로가기
파이썬 (Python)/자동화 (Automation)

파이썬 Python Macro 구현 pyautogui 이미지 인식하여 마우스 컨트롤 하는 법 + opencv-python

by ★√★ 2021. 3. 4.

안녕하세요,  오늘 설명드릴 사항은 pyautogui 패키지를 기반으로 Image를 이용하여, 마우스를 Control 할 수 있는 사항을 설명해 드리도록 하겠습니다. 저는 이걸 처음에 알았을 때는, 진짜, 놀랐고, 너무 기분이 좋았어요. 

 

pyautogui-opencv-python-썸네일
pyautogui-opencv-python-썸네일

 

 

그럼 지금부터 pyautogui 패키지를 기반으로 Image를 이용하여, 마우스를 Control 할 수 있는 사항을 설명 드리도록 하겠습니다. 일단 처음에는 이 코드를 구현하기 위한 opencv-python 모듈을 설치하는 것부터 설명 드리도록 하겠습니다.

 

opencv-python 설치하기

일단, Part #1에서 말씀 드린대로, pyautogui를 설치를 하셨을 거라고 생각합니다. 그리고, 추가적으로, Image를 컨트롤를 하기 위해서는 opencv-python이라는 package를 하나 더 설치를 하셔야 합니다. 

 

- Terminal 창에, "pip install opencv-python" 이렇게 치시면, 아래 snap shot에 나와 있는대로, 설치가 진행됩니다. 

 

 

pyautogui-opencv-python-관련-사진1
opencv-python-설치

 

아래 Successfully installed 라는 문구가 나오면, 잘 설치가 된 것입니다. 사실, 신기한거는, 이 package는 따로, Import로 입력안해줘도 된다는 사항입니다. 제 생각에는 pyautogui안에 coding이 됐을 거라고 생각합니다

(저도.. 배워가는 입장이라.. 예상만 하네요 ^^)

 

자, 그럼, Image Click을 위해서 여러가지 Case를 가지고 작업하도록 하겠습니다.

 

1. pyautogui.position() -- 초반에, 클릭할 Image의 위치를 알아내기 위함.

2. pyautogui.click('image File Name') - 기존에 만든 image 파일을 이용하여, click을 실형

3. pyautogui.locateCenterOnScreen('image File Name') - Image가 있는 위치를 알아내기 위함

4. pyautogui.screenshot() - 자동으로 python에서, image 파일 만들기.

 

 

이미지 인식하여 클릭하기

 

1. Case #1 - Image Point만 알고, Click 하기

  - 즉, Image가 있는 자리에, Mouse를 위치 시키고, 그 Position의 좌표를 알아내서, Click 하는 것입니다. 

    이 부분은, Part #1에서도 설명해 드린 사항이니, 이미 익숙 하실 겁니다. 

 

 

pyautogui-opencv-python-관련-사진2
pyautogui-코드

 

 

2. Case #2 - Image를 파일로 만들어서, Click하기

  - 아래 계산기 사진에서, "5"만 캡처해서, png 파일로 만들어서, 저장시켜놓고, 그 파일 이름으로, Click하는 방법입니다. 아래 Snap Shot을 보시면, "5.png" 파일이 생성이 되어 있고, 그 파일은, 아래 계산기의 "5"를 Caption한 것입니다.

      

 

 

pyautogui-opencv-python-관련-사진3

 

 

pyautogui-opencv-python-관련-사진4
계산기

 

  

 이 작업을 하고 나서, 아래 Code 때로 입력을 하면, 자동으로 계산기의 "5"가 클릭이 됩니다. 

 

 

pyautogui-opencv-python-관련-사진5
pyautogui-코드

 

그런데, 이 방법 말고도, 아래 방법으로도, 활용이 가능하며, 어느정도는 더 정확하게 수행 한다고 볼수 있을거 같습니다. 왜냐하면, 5.png 위치 좌표값을 알아내서, 그 기준으로, Click 하는 거라서요.

 (체감적으로 이게 더 빠른 거 같습니다.)

 

 

pyautogui-opencv-python-관련-사진6
pyautogui-코드

 

 

 

3. Case #3 - Image를 Caption해서, Click 하기

- 그럼 마지막으로, Image를 저장하지 않고, Caption을 해서, 그 이미지 파일을 가지고, Click하는 방법을

 설명드리겠습니다. Caption하는 부분만 빼면, Case #2번과 동일합니다. 

 일단, k 의 변수에, image가 있는 위치의 좌표값을 입력하고, output 창에 나올 수 있게 Print 를 합니다. 

   

 그, 좌표값을 기준으로, screeshot이라는 명령어로, image File을 만듭니다. 

 - pyautogui.screenshot('image file name', resion=(x axis, y axis, 가로 fixel 길이, 세로 fixel 길이)

 

이렇게 진행을 하면, 5.png라는 파일이 자동 생성이되며, 마지막 code로 click이 가능하게 됩니다. 

  

 

pyautogui-opencv-python-관련-사진7
pyautogui-코드

 

이상입니다. 지금까지 pyautogui 패키지를 기반으로 Image를 이용하여, 마우스를 Control 할 수 있는 사항에 대해서 포스팅을 작성하였습니다. 지금부터느 진짜 차근 차근 하나씩 배워가면서 문서 인식되는 프로그램도 만들어 볼까 생각 중입니다. 감사합니다. 

 

제 Posting이 조금이나마 정보 전달에 도움이 되셨길 빌며, 되셨다면, 구독, 댓글, 공감 3종 세트 부탁 드립니다. 감사합니다.

[저작권이나, 권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다. 검토 후 수정 및 삭제 조치 하도록 하겠습니다. 그리고, 기재되는 내용은 개인적으로 습득한 내용이므로, 혹 오류가 발생할 수 있을 가능성이 있으므로, 기재된 내용은 참조용으로만 봐주시길 바랍니다. 게시물에, 오류가 있을때도, Comment 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.]

 

관련 다른 글

728x90

댓글


// 내부링크를 현재창으로 열기 // Open internal links in same tab