机器视觉
从谷歌无人车到识别假币的自动售货机,机器视觉得到广泛应用,是一个具有深远影响和宏伟愿景的领域。
这里,我们将聚焦于机器视觉的一个分支——文字识别。 了解如何使用一些Python库识别和使用在线图像中的字符。
我们可以很容易地读取图像中的文字,但机器读这些图像非常困难。 如果使用这种人类用户可以正常读取但大多数内存无法读取的图像,就会出现验证码(CAPTCHA )。 验证码的可读性也大不相同。
将图像翻译成文字通常称为光学字符识别(Optical Character Recognition,OCR )。 可以实现OCR的基础库不多,现在很多库使用或在一些通用的基础OCR库的基础上进行定制。
OCR库概述
在图像读取和处理、图像差异机器学习、图像创建等任务中,Python始终是一种非常好的语言。 有很多库可以处理图像,但这里只介绍Tesseract库。
Tesseract
Tesseract是OCR库,目前由谷歌赞助。 Tesseract是目前公认最好、最准确的开源OCR系统。 除了非常高的精度外,Tesseract也具有很高的灵活性。 通过训练可以识别任意字体,也可以识别Unicode字符。
tessera CT :安装windows系统
下载并安装可安装文件即可。
安装pytesseract
Tesseract是Python命令行工具,而不是用import语句导入的库。 安装后,使用tesseract命令在Python之外运行,但可以在pip上安装与Python版本对应的tesseract库:
pip安装pytesseract
处理标准化文本
你处理的大部分文字比较漂亮,格式规范。 xhdlf格式的文本通常具有以下特征:
使用统一的标准字体(不含手写、草书或非常“华丽”的字体),复印或拍照,字体清晰,无多余痕迹或污渍,不倾斜的字不超出图像范围,不缺或缺例如,可以将照片转换为灰度,调整亮度和对比度,根据需要进行裁剪和旋转,但这里不介绍。
示例:
英语:
f :de 209 _ ftesseractenglish.jpgtexttesseractopensourceocrenginev4. 00.00 alphawithleptonicaf 3360 _ de 209 _ ftypton @#$%'* (识别结果的精度相当高。
用Python代码实现
英语:
中文:
#! /usr/明亮的篮球/python3#-*-coding : utf-8-* _ _ author _=' Mayi ' importpytesseractfrompilimportimage 打开图像的OCR识别: lang默认英语text=pytesseract.image _ to _ string (image ) #打印识别后的文本print (text ) #我是分隔线print ) ' ** 30 )开放图片:英文image OCR识别: lang指定中文文本=pytesseract.image _ to _ string (image,lang='chi_sim ' ),识别文本的
This is some text,written in Arial,thatwillbereadbytesseract.herearesomesymbols 3360! @ # $ % ' * (* * * * * * * * * * * * * * * * * * * * * * * * * * *中华人民共和国