이미지에서 텍스트를 추출하는 오픈소스 Python 라이브러리
PyTesseract OCR을 활용하여 인쇄된 텍스트 및 손글씨를 쉽게 추출하세요.
Python용 PyTesseract API란?
PyTesseract는 이미지에서 텍스트를 추출할 수 있는 강력한 오픈소스 OCR 엔진인 Tesseract-OCR의 Python 래퍼입니다. 이를 사용하면 스캔된 문서, 손글씨 메모 및 이미지 내 텍스트를 최소한의 노력으로 기계가 읽을 수 있는 형식으로 변환할 수 있습니다. PyTesseract는 자동화, 데이터 추출, 문서 디지털화 및 OCR을 필요로 하는 인공지능(AI) 애플리케이션에서 널리 사용됩니다.
이 라이브러리는 특히 데이터 입력 자동화, 스크린샷에서 텍스트 인식 및 인쇄된 문서의 디지털 변환에 유용합니다. 다국어 지원 및 이미지 전처리 기술을 갖춘 PyTesseract는 이미지에서 텍스트를 추출하는 강력하고 유연한 솔루션을 제공합니다.
PyTesseract API 주요 기능
- 이미지를 텍스트로 변환: OCR을 사용하여 인쇄된 텍스트 및 손글씨를 추출합니다.
- 다국어 지원: Tesseract OCR 모델을 사용하여 100개 이상의 언어를 인식합니다.
- 전처리 호환성: OpenCV 및 PIL을 활용하여 OCR 적용 전 이미지 품질을 향상시킵니다.
- PDF에서 텍스트 추출: 스캔된 PDF 파일을 검색 가능한 텍스트로 변환합니다.
- 경계 상자를 포함한 텍스트 추출: 이미지 내 텍스트의 위치 정보를 함께 제공합니다.
- 배치 처리: 여러 이미지에서 OCR을 효율적으로 실행할 수 있습니다.
- 크로스 플랫폼 지원: Windows, macOS 및 Linux에서 실행 가능합니다.
- 오픈소스: 무료로 사용할 수 있으며 커뮤니티 지원이 제공됩니다.
PyTesseract 설치
PyTesseract를 사용하기 전에 시스템에 Tesseract-OCR이 설치되어 있는지 확인하세요.
설치 방법
PyTesseract 및 종속 라이브러리 설치
pip install pytesseract pillow opencv-python
Windows에서 Tesseract-OCR 설치:
Tesseract-OCR 설치 (Windows)
# Tesseract 다운로드:
https://github.com/UB-Mannheim/tesseract/wiki
Linux에서 설치:
Tesseract-OCR 설치 (Linux)
sudo apt install tesseract-ocr
PyTesseract API를 활용한 텍스트 추출 예제
예제 1: 이미지에서 텍스트 추출
이미지에서 텍스트 추출
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
image = Image.open("sample.png")
text = pytesseract.image_to_string(image)
print(text)
예제 2: 경계 상자를 포함한 텍스트 추출
경계 상자를 포함한 텍스트 추출
import pytesseract
import cv2
image = cv2.imread("sample.png")
h, w, _ = image.shape
boxes = pytesseract.image_to_boxes(image)
for b in boxes.splitlines():
b = b.split()
x, y, x2, y2 = int(b[1]), int(b[2]), int(b[3]), int(b[4])
cv2.rectangle(image, (x, h - y), (x2, h - y2), (0, 255, 0), 2)
cv2.imwrite("output.png", image)
예제 3: 그레이스케일 이미지에서 텍스트 추출
그레이스케일 이미지에서 텍스트 추출
import pytesseract
import cv2
image = cv2.imread("sample.png")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
text = pytesseract.image_to_string(gray)
print(text)