简介:本文为编程零基础者提供Python图像文字识别(OCR)的完整入门指南,涵盖环境搭建、核心库使用、实战案例及优化技巧,助力快速掌握OCR技术。
Python凭借其简洁的语法和丰富的第三方库,成为OCR领域的首选语言。对于零基础学习者而言,Python的易读性降低了技术门槛,而Pillow(图像处理)、OpenCV(计算机视觉)和Tesseract(OCR引擎)等库的成熟生态,则提供了从图像预处理到文字提取的全流程支持。例如,使用pip install pillow opencv-python pytesseract
即可快速安装核心依赖,无需复杂配置。
基础概念梳理
开发环境搭建
pip install pillow opencv-python pytesseract
C:\Program Files\Tesseract-OCR
)到系统环境变量。 brew install tesseract
安装,Linux用户使用sudo apt install tesseract-ocr
。Pillow:图像基础处理
from PIL import Image
img = Image.open("example.png")
gray_img = img.convert("L") # 转为灰度图
gray_img.save("gray_example.png")
OpenCV:高级图像处理
import cv2
img = cv2.imread("example.png", cv2.IMREAD_GRAYSCALE)
_, thresh = cv2.threshold(img, 128, 255, cv2.THRESH_BINARY) # 二值化
cv2.imwrite("thresh_example.png", thresh)
Pytesseract:Tesseract的Python封装
import pytesseract
from PIL import Image
text = pytesseract.image_to_string(Image.open("example.png"), lang="chi_sim") # 中文简体
print(text)
完整代码:
from PIL import Image
import pytesseract
import cv2
# 读取图片并预处理
img = cv2.imread("test.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
# 保存预处理后的图片(可选)
cv2.imwrite("processed.png", thresh)
# 识别文字
text = pytesseract.image_to_string(Image.fromarray(thresh), lang="eng")
print("识别结果:\n", text)
cv2.resize()
放大图片(需配合cv2.INTER_CUBIC
插值)。 cv2.GaussianBlur(img, (5,5), 0)
。
# 放大图片
resized = cv2.resize(thresh, None, fx=2, fy=2, interpolation=cv2.INTER_CUBIC)
# 去噪
blurred = cv2.GaussianBlur(resized, (5,5), 0)
# 识别
text = pytesseract.image_to_string(Image.fromarray(blurred))
识别准确率低:
cv2.warpAffine()
矫正倾斜。 cv2.inRange()
提取特定颜色文字(如黑色文字)。 多语言支持:
chi_sim.traineddata
),放置于Tesseract的tessdata
目录。 lang="chi_sim+eng"
(中英文混合)。性能优化:
cv2.rectangle()
定位文字区域后裁剪。 深度学习OCR:
pip install easyocr
,支持80+语言。
import easyocr
reader = easyocr.Reader(["ch_sim", "en"])
result = reader.readtext("test.png")
print(result)
学习资源:
pytesseract
标签。零基础入门Python OCR的关键在于:
下一步行动:
通过系统学习与实践,零基础者也能在3天内掌握Python OCR的核心技能,为自动化办公、数据挖掘等场景提供技术支持。