본문 바로가기

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

액트 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 설치를 다시 확인하거나 시스템 재부팅해야 합니다.

 

반응형

댓글