자꾸 MARVEL의 Tesseract가 생각나지만 tesseract는 구글이 개발한 OCR Engine이다. 프로젝트 때문에 사용해야 하는데 python 환경에서 사용하려면 다음과 같은 라이브러리를 설치해야한다.
import pytesseract
짧은 코드를 작성하여 실행해본다.
from PIL import Image
import pytesseract
import argparse
import cv2
import os
ap = argparse.ArgumentParser()
ap.add_argument('-i', '--image', required=True, help="path to input image to be OCR'd")
ap.add_argument('-p', '--preprocess', type=str, default='thresh', help="type of preprocessing to be done")
args = vars(ap.parse_args())
image = cv2.imread(args['image'])
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
if args['preprocess'] == 'thresh':
gray = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]
elif args['preprocess'] == 'blur':
gray = cv2.medianBlur(gray, 3)
filename = '{}.png'.format(os.getpid())
cv2.imwrite(filename, gray)
text = pytesseract.image_to_string(Image.open(filename))
os.remove(filename)
print(text)
cv2.imshow('Image', image)
cv2.imshow('Output', gray)
cv2.waitKey(0)
하지만 아래와 같은 에러가 뜨면서 제대로 진행되지 않는다.
pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your path
python에서 실행하려면 곱게 tesseract를 컴퓨터에 설치 이후 path에 넣어주어야 한다. 하지만 가상 환경에서는 제대로 실행되지 않는 모습을 보인다. path를 내 컴퓨터가 아닌 가상 환경으로 잡아주기 때문이다. 이 때에는 직접 라이브러리를 수정한다.
# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
tesseract_cmd = "#실제적인 주소/tesseract.exe"
#pytesseract.py
pytesseract.py를 열어 35번째 줄을 확인하면 tesseract 라고 적혀있다. 이를 실제 환경 주소로 바꿔준다. 이후 실행하면 제대로 실행되는 것을 알 수 있다.
'Python > DeepLearning' 카테고리의 다른 글
Python과 2018 교통사고 사망 데이터를 활용하여 지도에 표시해보기 (0) | 2019.07.10 |
---|---|
Table Detection using Deep Learning 따라하기 (0) | 2019.05.27 |
왜 machine learning에서는 Normal Distributions를 사용할까? (3) | 2019.05.16 |
Tensorflow 기반 딥러닝 핵심과 활용 (0) | 2019.05.15 |
TensorFlow 교육 - 2일차 (0) | 2019.05.14 |