이미지 안에 텍스트 추출하는 방법
본문 바로가기

이미지 안에 텍스트 추출하는 방법

액트 2023. 12. 15.
반응형

이미지 안에 텍스트 추출하는 방법

소개

Python과 Pytesseract를 사용해 이미지에서 텍스트를 쉽게 추출하는 방법을 소개하겠습니다. 초보자도 따라할 수 있는 간단한 단계별 지침으로, 데이터 분석과 자동화 작업에 유용하게 사용하실 수 있습니다.

이미지 속 텍스트 추출하는 법

이미지 안에 있는 글씨를 추출하기 위해 Python에서는 보통 Pytesseract 라이브러리를 사용합니다. Pytesseract는 Google의 Tesseract-OCR 엔진을 Python에서 사용할 수 있게 해주는 소프트웨어입니다. 먼저, Tesseract-OCR을 시스템에 설치해야 합니다. 그 후에 Python에서 pytesseractPillow 라이브러리를 사용하여 이미지에서 텍스트를 추출할 수 있습니다.

1. Tesseract-OCR 설치

  • Windows: Tesseract at UB Mannheim에서 설치 프로그램을 다운로드하여 설치합니다.
  • macOS: Homebrew를 사용하여 brew install tesseract 명령어로 설치합니다.
  • Linux: sudo apt install tesseract-ocr 명령어로 설치합니다.

2. 필요한 Python 라이브러리 설치

pip install pytesseract pillow

3. Python 코드 

from tkinter import Tk, filedialog
import pytesseract
from PIL import Image

def select_image_file():
    # Tkinter 창을 사용하지 않고 파일 선택 대화 상자만 사용
    root = Tk()
    root.withdraw()

    # 파일 선택 대화 상자 열기
    file_path = filedialog.askopenfilename()
    
    return file_path

# 이미지 파일 선택
image_path = select_image_file()

# 이미지에서 텍스트 추출
if image_path:
    img = Image.open(image_path)
    text = pytesseract.image_to_string(img, lang='kor')  # 한국어 추출을 위해 'kor' 사용
    print(text)
else:
    print("파일이 선택되지 않았습니다.")

4. 실행

작성 완료 후 실행하시면 텍스트를 추출할 이미지를 선택하라는 윈도우 파일 선택 대화 상자가 열립니다. 사용자가 이미지를 선택하면 텍스트를 추출하여  화면에 한국어로 추출해줍니다.

에러 확인

에러문구 Case 1.

pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your PATH. See README file for more information.

해결방법: pytesseract.pytesseract.TesseractNotFoundError 오류는 시스템에 Tesseract OCR이 설치되어 있지 않거나, Python이 Tesseract의 설치 위치를 찾을 수 없을 때 발생합니다.

Tesseract OCR 설치 확인

Windows에서는 일반적으로 C:\Program Files\Tesseract-OCR에 설치됩니다. 해당 경로로 이동하여 폴더가 있는지 확인합니다. 만약 없다면 Tesseract at UB Mannheim 사이트로 이동하여 tesseract-ocr-w64-setup-5.3.3.20231005.exe (64 bit) 파일을 다운로드 후 설치하시면 됩니다.

Python에 Tesseract 경로 설정

Tesseract가 설치되어 있지만 여전히 오류가 발생한다면, Python이 Tesseract의 경로를 찾을 수 있도록 설정해야 합니다. pytesseract에 Tesseract의 경로를 설정합니다. 위에서 작성한 Python 코드에 아래 코드를 추가 합니다.

import pytesseract

# Tesseract 경로 설정
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'  # Windows 예시
# pytesseract.pytesseract.tesseract_cmd = '/usr/local/bin/tesseract'  # macOS/Linux 예시

# 이하 코드는 동일...

에러문구 Case 2.

ytesseract.pytesseract.TesseractError: (1, 'Error opening data file C:\\Program Files\\Tesseract-OCR/tessdata/kor.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory. Failed loading language \'kor\' Tesseract couldn\'t load any languages! Could not initialize tesseract.') 

해결방법: pytesseract.pytesseract.TesseractError 오류 메시지는 Tesseract가 한국어 데이터 파일(kor.traineddata)을 찾을 수 없을 때 발생합니다. 

Tesseract 언어 데이터 파일 확인

Tesseract의 tessdata 폴더 안에 kor.traineddata 파일이 있는지 확인합니다. 언어 데이터 파일이 없다면 kor.traineddata 파일을 tesseract-ocr/tessdata에서 다운로드합니다. 다운로드 완료 후 다운로드한 파일을 Tesseract의 tessdata 폴더에 복사합니다.

TESSDATA_PREFIX 환경 변수 설정

환경 변수 TESSDATA_PREFIX를 설정하여 Tesseract가 tessdata 폴더의 위치를 알 수 있도록 해야 합니다.

1. 환경 변수 설정 (Windows):

  • 시스템 속성 -> 고급 -> 환경 변수로 이동합니다.
  • 시스템 변수 섹션에서 '새로 만들기'를 클릭하고 변수 이름에 TESSDATA_PREFIX, 값에 Tesseract의 tessdata 폴더 경로를 입력합니다 (예: C:\Program Files\Tesseract-OCR).

2. 환경 변수 설정 (macOS/Linux):

터미널에서 다음 명령어를 입력합니다:

export TESSDATA_PREFIX=/usr/local/share/ # 경로는 실제 설치 위치에 따라 다를 수 있음
  • .bashrc나 .zshrc 파일에 위의 줄을 추가하여 영구적으로 설정할 수도 있습니다.

Python 코드 추가 작성

import pytesseract

# Tesseract 경로 설정 (Windows 예시)

pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

# 이미지에서 텍스트 추출 (한국어 설정)

text = pytesseract.image_to_string(img, lang='kor')

이러한 단계를 거쳐도 문제가 해결되지 않는다면, Tesseract 설치를 다시 확인하거나 시스템 재부팅해야 합니다.

 

반응형

댓글