Python 识别数字图片,有哪些好的库?

不是验证码,就普通的数字图片,没有任何干扰。然后图片转数字,有好的库建议下吗?


Python 识别数字图片,有哪些好的库?
13 回复

Tesseract


对于识别图片中的数字,这几个库是Python里最常用的:

1. OpenCV + Tesseract 这是最经典的组合。OpenCV做预处理(灰度化、二值化、去噪),Tesseract做OCR识别。适合常规的印刷体数字。

import cv2
import pytesseract

# 读取图片
img = cv2.imread('number.jpg')
# 转为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]
# 识别
text = pytesseract.image_to_string(thresh, config='--psm 6 digits')
print(f"识别结果: {text}")

2. EasyOCR 这个更简单,一行代码就能搞定,对复杂背景和手写体支持更好。

import easyocr

reader = easyocr.Reader(['en'])
result = reader.readtext('number.jpg', detail=0)
print(f"识别结果: {result[0] if result else '未识别'}")

3. PaddleOCR 百度开源的,中文场景下表现很好,识别精度高。

from paddleocr import PaddleOCR

ocr = PaddleOCR(use_angle_cls=True, lang='en')
result = ocr.ocr('number.jpg', cls=True)
for line in result:
    print(line[1][0])

简单建议:常规需求用EasyOCR,需要精细控制用OpenCV+Tesseract,中文场景选PaddleOCR。

用 tesseract 最好配合下 OpenCV,把图片转化成二值图或灰度图再识别,准确度会提高好多。

数字比较复杂的话可以考虑用 阿里云或者百度的 api

用 API 吧,简单准确的度还高

Tesseract 很多语言通吃,简单的图就用这个好了,一个命令就能搞定

import subprocess
subprocess.call(‘d:\tesseract’ + ’ ’ + ‘d:\img.png’ + ’ ’ + ‘d:\123.txt’, shell=True)

这太多了 … 随便哪个机器学习库就可以

tensorflow 的 demo 就是有个识别数字的

tensorflow 自带的入门教程了解一下,就是识别手写数字的

纯数字,没有噪声 变形等干扰?量不多的话,试试用企鹅的优图的 OCR 接口,叫通用印刷体文字识别。挺快的,多了要收费,多弄几个 qq 号就成

比较多,还是 tesseract 比较好用

回到顶部