python实现图像识别的⽰例代码
⼀、安装库
⾸先我们需要安装PIL和pytesseract库。
PIL:(Python Imaging Library)是Python平台上的图像处理标准库,功能⾮常强⼤。
pytesseract:图像识别库。
我这⾥使⽤的是python3.6,PIL不⽀持python3所以使⽤如下命令
pip install pytesseract
pip install pillow
如果是python2,则在命令⾏执⾏如下命令:
pip install pytesseract
pip install PIL
这时候我们去运⾏上⾯的代码会发现如下错误:
错误提⽰的很明显:
No such file or directory :"tesseract"
这是因为我们没有安装tesseract-ocr引擎
⼆、tesseract-ocr引擎
光学字符识别(OCR,Optical Character Recognition)是指对⽂本资料进⾏扫描,然后对图像⽂件进⾏分析处理,获取⽂字及版⾯信息的过程。OCR技术⾮常专业,⼀般多是印刷、打印⾏业的从业⼈员使⽤,可以快速的将纸质资料转换为电⼦资料。关于中⽂OCR,⽬前国内⽔平较⾼的有清华⽂通、汉王、尚书,其产品各有千秋,价格不菲。国外OCR发展较早,像⼀些⼤公司,如IBM、微软、HP等,即使没有
推出单独的OCR产品,但是他们的研发团队早已掌握核⼼技术,将OCR功能植⼊了⾃⾝的软件系统。对于我们程序员来说,⼀般⽤不到那么⾼级的,主要在开发中能够集成基本的OCR功能就可以了。这两天我查了很多免费OCR软件、类库,特地整理⼀下,今天⾸先来谈谈Tesseract,下⼀次将讨论下Onenote 2010中的OCR API实现。可以在这⾥查看OCR技术的发展简史。
Tesseract的OCR引擎最先由HP实验室于1985年开始研发,⾄1995年时已经成为OCR业内最准确的三款识别引擎之⼀。然⽽,HP不久便决定放弃OCR业务,Tesseract也从此尘封。
python安装教程非常详细数年以后,HP意识到,与其将Tesseract束之⾼阁,不如贡献给开源软件业,让其重焕新⽣--2005年,Tesseract由美国内华达州信息技术研究所获得,并求诸于Google对Tesseract进⾏改进、消除Bug、优化⼯作。
###安装tesseract-ocr引擎
brew install tesseract
然后我们通过tesseract -v看⼀下是否安装成成功
tesseract 3.05.01
leptonica-1.75.0
libjpeg 9b : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11
这时候我们运⾏上⾯代码会出现乱码
这是因为tesseract默认只有语⾔包中没有中⽂包,如下图:
###安装tesseract-ocr语⾔包
我们去GitHub下载我们需要的语⾔包,这⾥我只下载了aineddata和aineddata
然后放到/usr/local/Cellar/tesseract/3.05.01/share/tessdata路径下⾯。
可以通过tesseract --list-langs查看本地语⾔包:
可以通过tesseract --help-psm查看psm
0:定向脚本监测(OSD)
1:使⽤OSD⾃动分页
2 :⾃动分页,但是不使⽤OSD或OCR(Optical Character Recognition,光学字符识别)
3 :全⾃动分页,但是没有使⽤OSD(默认)
4 :假设可变⼤⼩的⼀个⽂本列。
5 :假设垂直对齐⽂本的单个统⼀块。
6 :假设⼀个统⼀的⽂本块。
7 :将图像视为单个⽂本⾏。
8 :将图像视为单个词。
9 :将图像视为圆中的单个词。
10 :将图像视为单个字符。
为什么这⾥要强调语⾔包和psm,因为我们在使⽤中会⽤到,
⽐如多个语⾔包组合并且视为统⼀的⽂本块将使⽤如下参数:
pytesseract.image_to_string(image,lang="chi_sim+eng",config="-psm 6")
这⾥我们通过+来合并使⽤多个语⾔包。
接下来我们看⼀下配置好⼀切的正确结果。
import pytesseract
from PIL import Image
image = Image.open("../pic/c.png")
code = pytesseract.image_to_string(image,lang="chi_sim",config="-psm 6")
print(code)
此时⼤公告成。
到此这篇关于python实现图像识别的⽰例代码的⽂章就介绍到这了,更多相关python 图像识别内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。