[python] PyTesseract와 이미지 처리 라이브러리 (예: OpenCV)를 함께 사용하는 방법

PyTesseract는 OCR(광학 문자 인식) 도구로 아주 유용합니다. 하지만 때로는 OCR을 적용하기 전에 이미지를 전처리해야할 때가 있습니다. 이때 이미지 처리 라이브러리인 OpenCV와 함께 PyTesseract를 사용하는 것이 좋습니다. 이번 글에서는 Python에서 PyTesseract와 OpenCV를 함께 사용하는 방법을 알아보겠습니다.

필요한 라이브러리 설치

먼저 Python 환경에서 필요한 라이브러리를 설치해야 합니다. 아래 명령어를 사용하여 필요한 패키지를 설치할 수 있습니다.

pip install pytesseract opencv-python

이미지 전처리와 PyTesseract 적용하기

이제 PyTesseract와 OpenCV를 함께 사용하여 이미지 전처리와 OCR을 적용해보겠습니다.

import cv2
import pytesseract

# 이미지 로드
image = cv2.imread('image.jpg')

# 이미지 전처리
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
processed_image = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]

# OCR 적용
text = pytesseract.image_to_string(processed_image)

# 결과 출력
print(text)

위의 코드에서 image.jpg는 OCR을 적용할 이미지 파일의 경로입니다. cv2.imread() 함수를 사용하여 이미지를 로드하고, cv2.cvtColor() 함수를 사용하여 이미지를 흑백으로 변환합니다. 그 후, cv2.threshold() 함수를 사용하여 이미지를 이진화 처리합니다. 마지막으로 pytesseract.image_to_string() 함수를 사용하여 처리된 이미지에서 문자를 추출합니다. 추출된 텍스트는 text 변수에 저장됩니다.

추가적인 이미지 전처리

메인 이미지 전처리 단계 이외에도 추가적인 전처리 단계를 적용할 수 있습니다. 예를 들어, 이미지에 포함된 노이즈를 제거하기 위해 다양한 OpenCV 함수를 사용할 수 있습니다. 이를 통해 OCR 결과를 향상시킬 수 있습니다.

# 추가적인 이미지 전처리
denoised_image = cv2.medianBlur(processed_image, 3)

# OCR 적용
text = pytesseract.image_to_string(denoised_image)

# 결과 출력
print(text)

위의 예시에서는 cv2.medianBlur() 함수를 사용하여 이미지에 미디안 블러(Median Blur) 필터를 적용하여 노이즈를 제거합니다. 이후, 동일한 방식으로 OCR을 적용하고 결과를 출력합니다.

이처럼 PyTesseract와 OpenCV를 함께 사용하여 이미지 전처리와 OCR을 적용할 수 있습니다. 이미지 전처리 과정을 적절히 조정하면 OCR 결과의 정확도를 향상시킬 수 있습니다.