이미지에서 텍스트 추출은 문자 인식 (Optical Character Recognition, OCR) 기술을 사용하여 컴퓨터 비전 분야에서 널리 사용되는 작업입니다. OpenCV-Python은 이미지 처리 및 컴퓨터 비전 작업을 위한 강력한 라이브러리입니다. 이 블로그 포스트에서는 OpenCV-Python을 사용하여 이미지에서 텍스트를 추출하는 방법을 알아보겠습니다.
Step 1: 이미지 가져오기
먼저, OpenCV-Python을 설치하고 이미지를 가져와야 합니다. 아래의 코드가 이를 수행합니다.
import cv2
# 이미지 파일을 읽어옵니다.
image = cv2.imread("image.jpg")
이미지 파일의 경로를 “image.jpg”로 바꾸고, image
변수에 이미지 객체를 저장합니다.
Step 2: 이미지 전처리
OCR 작업을 진행하기 전에 이미지를 전처리해야 합니다. 전처리는 이미지를 이진화하거나 잡음을 제거하는 등의 과정을 포함할 수 있습니다. 아래의 코드는 전처리를 수행하는 예시입니다.
import cv2
import numpy as np
# 이미지를 그레이스케일로 변환합니다.
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 이미지를 이진화합니다.
_, binary_image = cv2.threshold(gray_image, 150, 255, cv2.THRESH_BINARY)
# 이미지에서 잡음을 제거합니다.
denoised_image = cv2.fastNlMeansDenoising(binary_image, None, 10, 7, 21)
위의 코드에서 이미지는 그레이스케일로 변환되고, 임계값 150을 기준으로 이진화됩니다. 그런 다음 fastNlMeansDenoising
함수를 사용하여 잡음을 제거합니다. 전처리 단계는 텍스트 추출의 성능에 많은 영향을 미치므로 조절할 수 있습니다.
Step 3: 텍스트 추출하기
이제 전처리된 이미지에서 텍스트를 추출하는 단계입니다. OpenCV-Python은 이미지에서 텍스트를 감지하고 추출하는 데 사용할 수 있는 다양한 기능을 제공합니다. 아래의 코드는 텍스트 추출을 수행하는 기본 예시입니다.
import cv2
import pytesseract
# 이미지에서 텍스트를 추출합니다.
extracted_text = pytesseract.image_to_string(denoised_image, lang="eng")
# 추출된 텍스트를 출력합니다.
print(extracted_text)
위의 코드에서 pytesseract.image_to_string
함수를 사용하여 이미지에서 텍스트를 추출합니다. lang
매개변수를 통해 텍스트의 언어를 지정할 수 있습니다. 추출된 텍스트는 문자열로 반환되며, print
함수를 사용하여 출력할 수 있습니다.
Step 4: 결과 확인
위의 코드를 실행하면 이미지에서 추출된 텍스트가 콘솔에 출력됩니다. 텍스트 추출의 정확도를 더욱 높이기 위해 전처리 과정을 조정하거나 다른 기술 및 라이브러리와 결합할 수 있습니다. 이미지의 텍스트 추출 결과를 확인하고 필요에 따라 추가 조치를 취하십시오.
이제 OpenCV-Python을 사용하여 이미지에서 텍스트를 추출하는 방법을 알게 되었습니다. OCR은 자동화, 문서 분류, 기계 학습 등 다양한 분야에서 유용하게 활용될 수 있습니다. OpenCV-Python의 다른 기능과 함께 OCR을 조합하여 더욱 강력한 애플리케이션을 개발할 수 있습니다.
import cv2
import pytesseract
# 이미지 파일을 읽어옵니다.
image = cv2.imread("image.jpg")
# 이미지를 그레이스케일로 변환합니다.
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 이미지를 이진화합니다.
_, binary_image = cv2.threshold(gray_image, 150, 255, cv2.THRESH_BINARY)
# 이미지에서 잡음을 제거합니다.
denoised_image = cv2.fastNlMeansDenoising(binary_image, None, 10, 7, 21)
# 이미지에서 텍스트를 추출합니다.
extracted_text = pytesseract.image_to_string(denoised_image, lang="eng")
# 추출된 텍스트를 출력합니다.
print(extracted_text)
이제 위의 코드를 사용하여 OpenCV-Python에서 텍스트 추출을 시도할 수 있습니다. 문서에서 텍스트를 추출하는 데 필요한 전처리 단계 및 기타 매개변수를 조정하여 최상의 결과를 얻을 수 있습니다. OCR 기술은 다양한 분야에서 이용되며 텍스트를 추출하거나 분석하는 데 매우 유용합니다. OpenCV-Python은 이를 쉽고 효율적으로 수행하는 데 도움을 줄 수 있는 강력한 라이브러리입니다.