ํ์ด์ฌ Tesseract OCR ๊ธฐ๋ฅ์ ํ์ฉํด ๋ฐ์ดํฐ ํ ์คํธํ
import pytesseract
import cv2
import os
from PIL import Image
# Tesseract ๊ฒฝ๋ก ์ค์ (Windows ์ ์ฉ)
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
# ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ํ
์คํธ ํ์ผ ์ด๊ธฐ
output_path = "C:\\Users\\user\\Desktop\\sample\\output.txt"
result = open(output_path, "w")
# ์ด๋ฏธ์ง ํ์ผ๋ค์ด ์ ์ฅ๋ ๊ฒฝ๋ก
path_dir = 'C:\\Users\\user\\Desktop\\sample'
file_list = os.listdir(path_dir)
# ์ด๋ฏธ์ง ํ์ผ ์ฒ๋ฆฌ
for file_name in file_list:
if file_name.endswith('.jpg') or file_name.endswith('.png'): # ์ด๋ฏธ์ง ํ์ผ ํํฐ๋ง
img_path = os.path.join(path_dir, file_name)
# ์ด๋ฏธ์ง ๊ฒฝ๋ก๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์ธ
if not os.path.exists(img_path):
print(f"ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค: {img_path}")
continue
# ์ด๋ฏธ์ง ์ฝ๊ธฐ
img_cv = cv2.imread(img_path)
# ์ด๋ฏธ์ง๊ฐ ์ ๋๋ก ๋ก๋๋์๋์ง ํ์ธ
if img_cv is None:
print(f"์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ ์ ์์ต๋๋ค: {img_path}")
continue
# OpenCV ์ด๋ฏธ์ง์์ RGB๋ก ๋ณํํ ๋ค, Pillow ํ์์ผ๋ก ๋ณํ
img_rgb = cv2.cvtColor(img_cv, cv2.COLOR_BGR2RGB)
img_pil = Image.fromarray(img_rgb)
# Tesseract๋ก ํ
์คํธ ์ถ์ถ
text = pytesseract.image_to_string(img_pil, lang='ENG+KOR', config='--psm 4 -c preserve_interword_spaces=1')
result.write(text + '\n')
# ๊ฒฐ๊ณผ ํ์ผ ๋ซ๊ธฐ
result.close()
print("์ถ์ถ์ด ์๋ฃ๋์์ต๋๋ค. ํ์ธ ๋ถํ๋๋ฆฝ๋๋ค.")
ํด๋น ์ฝ๋๋ฅผ ์์ฑํ์ฌ ์คํฌ๋ฆฐ์ท์ ํ ์คํธ๋ก ๋ฐ๊ฟ๋ณด๊ฒ ์ต๋๋ค.
์ฑ๋ฅ์ด ์ข์ง ์์ต๋๋ค...
๋ค๋ฅธ ์คํฌ๋ฆฐ์ท์ผ๋ก๋ ํด๋ดค๋๋ฐ ์ ๋๋ก ๋ฐ๊ฟ์ฃผ์ง ์์ต๋๋ค.
chat gpt๋ ์๋ฒฝํ๊ฒ ํ ์คํธ๋ก ๋ฐ๊ฟ์ฃผ๋๋ฐ, ๋น ์ง ํ ์คํธ์ ์๋ชป๋ ํ ์คํธ๊ฐ ๋ง์ต๋๋ค.
๋ค๋ฅธ ๋ฐฉ์์ ์ข ๋ ์ฐพ์๋ณด์ ์๋ฒฝํ๊ฒ ํ ์คํธ๋ก ๋ฐ๊ฟ์ฃผ๋ ๋ฐฉ์์ ํํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.