本期推荐的是一个Python3下的文字识别(Optical Character Recognition,简称OCR)工具包——cnocr。
cnocr 主要针对的是排版简单的印刷体文字图片,如截图图片,扫描件等。目前内置的文字检测和分行模块无法处理复杂的文字排版定位。如果要用于场景文字图片的识别,需要结合其他的场景文字检测引擎使用
安装
pip install cnocr
安装速度慢的话,可以指定国内的安装源,比如使用豆瓣源:
pip install cnocr -i https://pypi.doubanio.com/simple
使用方法
针对多行文字的图片识别
如果待识别的图片包含多行文字,或者可能包含多行文字(如下图),可以使用 CnOcr.ocr() 进行识别。
from cnocr import CnOcr
ocr = CnOcr()
res = ocr.ocr('docs/examples/multi-line_cn1.png')
print("Predicted Chars:", res)
或者
from cnocr.utils import read_img
from cnocr import CnOcr
ocr = CnOcr()
img_fp = 'docs/examples/multi-line_cn1.png'
img = read_img(img_fp)
res = ocr.ocr(img)
print("Predicted Chars:", res)
针对单行文字的图片识别
如果明确知道待识别的图片包含单行文字(如下图),可以使用 CnOcr.ocr_for_single_line() 进行识别。
from cnocr import CnOcr
ocr = CnOcr()
res = ocr.ocr_for_single_line('docs/examples/helloworld.jpg')
print("Predicted Chars:", res)
或者
from cnocr.utils import read_img
from cnocr import CnOcr
ocr = CnOcr()
img_fp = 'docs/examples/helloworld.jpg'
img = read_img(img_fp)
res = ocr.ocr_for_single_line(img)
print("Predicted Chars:", res)
效果示例
—END—
开源协议:Apache2.0