본문 바로가기

카테고리 없음

Pyautogui 글자 인식과 활용 방법

by 공부하는 40대 2024. 10. 7.

반응형

안녕하세요! 오늘은 컴퓨터 화면 자동화를 위한 도구 중 하나인 Pyautogui를 활용하여 화면의 글자를 인식하고 이를 어떻게 효율적으로 활용할 수 있는지 알아보는 시간을 가져보겠습니다.

Pyautogui는 파이썬으로 작성된 간편한 모듈로, 마우스 이동, 클릭, 키보드 입력 등 다양한 자동화 작업을 제공합니다. 하지만 글자 인식을 직접적으로 지원하지 않기 때문에 Tesseract 같은 외부 OCR(Optical Character Recognition) 도구와 결합해 사용해야 합니다.

Pyautogui 설치와 기본 사용법

Pyautogui를 사용하려면 먼저 파이썬이 설치되어 있어야 합니다. 명령 프롬프트 또는 터미널에서 아래 명령어로 Pyautogui를 설치할 수 있습니다.

pip install pyautogui

설치 후 적용할 수 있는 기본적인 명령은 다음과 같습니다:

명령어 설명
pyautogui.position() 현재 마우스 커서의 좌표 반환
pyautogui.moveTo(x, y) 지정한 좌표로 마우스 이동
pyautogui.click() 마우스 클릭
pyautogui.typewrite('text') 키보드 입력

Tesseract OCR 설치와 사용법

Pyautogui는 화면의 이미지를 읽을 수 있지만 글자인식은 할 수 없습니다. 이를 위해 Tesseract OCR을 사용할 수 있습니다. Tesseract는 다양한 언어를 지원하며, 이를 통해 화면에서 글자를 추출할 수 있습니다.

Tesseract 설치 방법은 운영체제에 따라 다릅니다. 윈도우 사용자라면 공식 GitHub 페이지에서 설치 파일을 다운로드 받아 설치할 수 있습니다.

설치 후에는 pytesseract라는 파이썬 모듈을 통해 Tesseract를 파이썬에서 사용할 수 있습니다.

pip install pytesseract

화면 캡처와 글자 인식 예제

이제 Pyautogui로 화면을 캡처하고, Tesseract OCR로 해당 화면의 글자를 읽어보겠습니다.

import pyautogui
import pytesseract
from PIL import Image

# 스크린샷 찍기
screenshot = pyautogui.screenshot()
screenshot.save("screenshot.png")

# Tesseract 명령어 경로 설정 (윈도우의 경우 필요)
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

# 이미지에서 글자 추출
text = pytesseract.image_to_string(Image.open("screenshot.png"))
print(text)
  

위 예제에서는 화면 전체를 캡처하여 이미지 파일로 저장한 후, Tesseract를 이용해 해당 이미지 파일로부터 글자를 추출합니다. **화면에서 읽어온 글자를** 아래처럼 활용하여 보다 **효율적인 자동화**를 구현할 수 있습니다.

추출한 글자 활용하기

추출한 글자를 어떻게 활용할 수 있을까요? 글자를 인식한 후 원하는 작업을 자동화하는 몇 가지 예제를 살펴보겠습니다.

**웹사이트에서 정보 수집**: 특정 웹사이트에서 필요한 정보를 자동으로 긁어와 저장할 수 있습니다. 예를 들어 제품의 가격이나 날씨 정보를 수집하는 스크립트를 작성할 수 있습니다.

**자동 업무 처리**: 이메일 내용의 특정 부분을 감지해 자동으로 답장을 보내거나, 스프레드시트의 특정 데이터를 업데이트할 수 있습니다.

결론


**Pyautogui**는 본래 글자 인식 기능이 없지만, **Tesseract OCR**과 같은 강력한 도구와 결합하여 사용함으로써 컴퓨터 비전의 기초를 활용할 수 있습니다. 이러한 **자동화 작업**은 생산성을 높이고 반복적인 업무를 줄여줍니다. 오늘 소개해드린 방법을 적극적으로 활용해보세요!

Pyautogui와 Tesseract의 조합을 통해 작은 작업에서 큰 프로젝트까지 확장해나가는 경험을 하실 수 있기를 바랍니다. 다음 포스팅에서도 흥미로운 주제를 가지고 찾아오겠습니다. 감사합니다!

반응형