简介
可以使用pytesseract库从图像中提取文本。Tesseract是一款由Google赞助的开源OCR。 pytesseract是python包装器,它为可执行文件提供了pythonic API。
Tesseract(/’tesərækt/) 这个词的意思是”超立方体”,指的是几何学里的四维标准方体,又称”正八胞体”。下图是一个正八胞体绕着两个四维空间中互相正交的平面进行双旋转时的透视投影。不过这里要讲的,是一款以其命名的开源 OCR(Optical Character Recognition, 光学字符识别) 软件。
所谓 OCR 是图像识别领域中的一个子领域,该领域专注于对图片中的文字信息进行识别并转换成能被常规文本编辑器编辑的文本。
Tesseract 已经有 30 年历史,开始它是惠普实验室的一款专利软件,然后在 2005 年开源,自 2006 年后由 Google 赞助进行后续的开发和维护。
在 1995 年 Tesseract 曾是世界前三的 OCR 引擎,而且在现在的免费 OCR 引擎中,其识别精度也仍然是出类拔萃的。因为其免费与较好的效果,许多的个人开发者以及一些较小的团队在使用着 Tesseract ,诸如验证码识别、车牌号识别等应用中,不难见到 Tesseract 的身影。
安装
以ubuntu 16.04为例
# pip3 install pytesseract# apt install tesseract-ocr tesseract-ocr-chi-sim
快速入门
#!/usr/bin/python# -*- coding: utf-8 -*-# Author: china-testing@126.com wechat:pythontesting qq群:144081101# CreateDate: 2018-04-25import pytesseract as ptimport requestsfrom PIL import Image#img = Image.open("textinimage.png")print("英文:")url = "https://china-testing.github.io/images/python_lib_ocr_en.png"img = Image.open(requests.get(url, stream=True).raw)text = pt.image_to_string(img)print(text)#img = Image.open("textinimage.png")print("中文:")url = "https://china-testing.github.io/images/python_lib_ocr.PNG"img = Image.open(requests.get(url, stream=True).raw)text = pt.image_to_string(img,lang='chi_sim')print(text)
执行结果
$ python3 04_10_perform_ocr.py 英文:This is an image containing text.And some numbers 123456789And also special characters: !@#$%"&*(_+中文:pyth0"自动化测试人工智能
可见中文识别的效果并不太好,为此很多公司进行机器学习来改进。
另外网易的有道云笔记的OCR效果做得很不错,白描的凑合能用,qq的扫二维码也可以识别文字,但是做得比较烂。
ocr可以做python项目对初学者进行实践,请联系微信:pythontesting
本文最新代码地址,后续相关ocr的资料也会放在这里。
另外tesseract也可以命令行执行:
$ tesseract test22.png stdout -l chi_simpyth0n自动化测试人工智能
参考资料
- 讨论qq群144081101 591302926 567351477 钉钉免费群21745728
- 本文相关书籍下载
- 本文最新版本地址
- 本文涉及的python测试开发库 谢谢点赞!
- ImageMagick
- Tesseract:安装与命令行使用
- Tesseract OCR:Ubuntu 16.04上的安装和使用