[python] PyTesseract를 사용하여 매장의 할인 쿠폰에서 텍스트 추출하기

매장에서 받은 할인 쿠폰에는 많은 정보가 담겨 있을 수 있습니다. 이 정보 중에서 우리가 관심 있는 부분을 추출하기 위해서는 OCR(Optical Character Recognition) 기술을 사용해야 합니다. 오늘은 Python의 PyTesseract 라이브러리를 사용하여 매장의 할인 쿠폰에서 텍스트를 추출하는 방법에 대해 알아보겠습니다.

1. PyTesseract 설치

PyTesseract는 Tesseract OCR 엔진을 사용하여 이미지에서 텍스트를 추출하는 Python 래퍼입니다. PyTesseract를 설치하기 위해서는 다음과 같은 명령을 사용합니다:

pip install pytesseract

또한, Tesseract OCR 엔진도 설치되어 있어야 합니다. Tesseract는 C++로 작성된 오픈소스 OCR 엔진으로, 다양한 플랫폼에서 사용할 수 있습니다. Tesseract OCR 엔진의 설치 방법은 운영 체제에 따라 다소 다를 수 있으므로, 해당 운영 체제에 맞는 설치 가이드를 참고해야 합니다.

2. 이미지에서 텍스트 추출하기

이제 PyTesseract를 사용하여 이미지에서 텍스트를 추출해보겠습니다. 우선, 이미지를 로드해야 합니다. PyTesseract는 PIL(Python Imaging Library) 라이브러리를 사용하여 이미지를 처리합니다. 따라서, PIL도 함께 설치되어 있어야 합니다.

from PIL import Image
import pytesseract

# 이미지 로드
image = Image.open('coupon.jpg')

# 이미지에서 텍스트 추출
text = pytesseract.image_to_string(image)

# 추출된 텍스트 출력
print(text)

위 코드를 실행하면, coupon.jpg 이미지에서 추출된 텍스트가 출력됩니다.

3. 텍스트 후처리

텍스트 추출 후에는 종종 후처리 작업이 필요할 수 있습니다. 예를 들어, 추출된 텍스트가 줄바꿈이나 공백으로 이루어져 있을 수 있습니다. 이런 경우, 정규식(regular expression)을 사용하여 텍스트를 정리할 수 있습니다.

import re

# 텍스트 후처리
cleaned_text = re.sub('\n', ' ', text)  # 줄바꿈 제거
cleaned_text = re.sub('\s+', ' ', cleaned_text)  # 공백 제거

# 정리된 텍스트 출력
print(cleaned_text)

위 코드에서는 re.sub() 함수를 사용하여 줄바꿈과 공백을 정규식에 맞게 처리한 후, 정리된 텍스트를 출력합니다.

결론

Python의 PyTesseract 라이브러리를 사용하여 매장의 할인 쿠폰에서 텍스트를 추출하는 방법에 대해 알아보았습니다. PyTesseract와 Tesseract OCR 엔진을 설치한 후에는 이미지에서 텍스트를 추출하고, 추출된 텍스트를 후처리하여 원하는 결과를 얻을 수 있습니다. OCR 기술은 다양한 분야에서 활용될 수 있으며, 쿠폰 할인 정보 뿐만 아니라 다른 이미지에 포함된 텍스트도 추출할 수 있습니다.

참고 자료