[python] PyTesseract를 사용하여 이미지에서 텍스트 추출하기

이미지에서 텍스트를 추출하는 작업은 많은 경우에 유용합니다. PyTesseract는 Python에서 사용되는 오픈 소스 라이브러리로, 이미지에서 텍스트를 추출하는 데 사용됩니다. 이 블로그는 PyTesseract를 사용하여 이미지에서 텍스트를 추출하는 방법에 대해 설명합니다.

PyTesseract 설치하기

PyTesseract를 사용하기 위해서는 먼저 Tesseract OCR 엔진을 설치해야 합니다. 다음 명령어를 사용하여 Tesseract OCR 엔진을 설치합니다.

sudo apt install tesseract-ocr

또는 Windows에서는 Tesseract OCR 공식 사이트에서 설치 파일을 다운로드하여 설치할 수 있습니다.

PyTesseract를 설치하기 위해 다음 명령어를 사용합니다.

pip install pytesseract

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

PyTesseract를 사용하여 이미지에서 텍스트를 추출하는 코드는 다음과 같습니다.

import cv2
import pytesseract

# 이미지 불러오기
image = cv2.imread('image.jpg')

# 이미지를 그레이스케일로 변환
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 이미지에 적용할 옵션 설정
config = '--psm 6'  # OCR 추출 모드 설정

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

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

위 코드에서 image.jpg는 추출하려는 텍스트가 있는 이미지 파일의 경로를 나타냅니다. --psm 6은 Tesseract OCR 엔진의 추출 모드를 설정하는 옵션입니다. 다양한 추출 모드를 사용하려면 Tesseract OCR 문서를 참조하십시오.

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

정확도 향상을 위한 전처리

PyTesseract는 이미지 전처리를 통해 텍스트 추출의 정확도를 향상시킬 수 있습니다. 예를 들어, 이미지를 블러 처리하거나 이진화 등의 작업을 수행할 수 있습니다. 이는 텍스트가 있는 이미지의 특성에 따라 다르므로 실험을 통해 최적의 전처리 방법을 찾아야 합니다.

import cv2
import pytesseract

# 이미지 불러오기
image = cv2.imread('image.jpg')

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

# 이미지에 적용할 옵션 설정
config = '--psm 6'  # OCR 추출 모드 설정

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

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

위 코드는 이미지 전처리를 위해 GaussianBlur 및 이진화(threshold) 작업을 수행한 후, 전처리된 이미지를 PyTesseract에 전달하여 텍스트를 추출합니다. 전처리 작업을 조정하여 추출 정확도를 향상시킬 수 있습니다.

결론

이 블로그에서는 PyTesseract를 사용하여 이미지에서 텍스트를 추출하는 방법에 대해 알아보았습니다. PyTesseract는 간편하게 사용할 수 있는 OCR 라이브러리이며, 이미지에서 텍스트를 추출하는 다양한 작업에 활용할 수 있습니다. 추가적인 설정 및 전처리 작업을 통해 추출 정확도를 향상시킬 수도 있습니다.