时间:2021-05-22
前言
python图像识别一般基础到的就是tesseract了,在爬虫中处理验证码广泛使用。
安装
安装教程网上大都差不多,Windows下确实比较麻烦,涉及到各种路径、环境变量甚至与linux不同的路径分隔符,所以这里的安装是基于Centos7。
1. 依赖安装
2. 安装leptonica
Leptonica主要用于图像处理和图像分析
原则上所有的库文件都是可以直接用yum安装的,如果想要具体的某个版本,可以前往官方源下载对应版本然后按照对应方式编译
wget http://www.leptonica.org/source/leptonica-1.74.4.tar.gztar -zxvf leptonica-1.74.4.tar.gzcd leptonica-1.74.4/./configuremake && make install3. 安装tesseract
其他各版本可以在这里下载并自行编译,也提供直接使用的文件。
4. 验证安装
5. 语言包下载
前往tesseract-ocr/tessdata下载相应的语言包,然后将之移动到tessdata目录下,可以用whereis tesseract查看一下具体的目录,我的是/usr/share/tesseract/tessdata/mv *.traineddata /usr/local/share/tessdata/
6. 查看目前已下载的语言
tesseract --list-langs
使用
# tesseractUsage: tesseract --help | --help-psm | --help-oem | --version tesseract --list-langs [--tessdata-dir PATH] tesseract --print-parameters [options...] [configfile...] tesseract imagename|stdin outputbase|stdout [options...] [configfile...]OCR options: --tessdata-dir PATH Specify the location of tessdata path. --user-words PATH Specify the location of user words file. --user-patterns PATH Specify the location of user patterns file. -l LANG[+LANG] Specify language(s) used for OCR. -c VAR=VALUE Set value for config variables. Multiple -c arguments are allowed. --psm NUM Specify page segmentation mode. --oem NUM Specify OCR Engine mode.NOTE: These options must occur before any configfile.语法
0:定向脚本监测(OSD)
1: 使用OSD自动分页
2 :自动分页,但是不使用OSD或OCR(Optical Character Recognition,光学字符识别)
3 :全自动分页,但是没有使用OSD(默认)
4 :假设可变大小的一个文本列。
5 :假设垂直对齐文本的单个统一块。
6 :假设一个统一的文本块。
7 :将图像视为单个文本行。
8 :将图像视为单个词。
9 :将图像视为圆中的单个词。
10 :将图像视为单个字符。
python中使用
Tesseract安装完成后可以很方便的被Python调用,但是需要pillow和pytesseract的支持。
python中转换
实例:
流程: 打开图片,配置,转换,可以通过Image的open或者cv2的imread打开图片,之后对图片进行对比度增强,降噪等处理,效果会好一些。
from PIL import Imageimport pytesseractclass Languages: CHS = 'chi_sim' ENG = 'eng'def img_to_str(image_path, lang=Languages.ENG): return pytesseract.image_to_string(Image.open(image_path), lang)print(img_to_str('pic/numu.png', lang=Languages.ENG))print(img_to_str('pic/pro.png', lang=Languages.ENG))总结
简单的文本识别效果还是不错的,但是设计到多空行、符号等,识别效果就不是太好了,准确度方面可以通过对字库的训练达到想要的效果,之后对获取到的文本利用诸如re等各种库进行操作,其实应用还蛮广泛的。2. 但是它在验证码方面的话效果还是不错的,验证码的话tesserocr也是比较方面的.
识别中文可能会出现编码错误,这也是识别上的漏洞之一了,网上大佬们所说的改变文本的编码似乎并不能解决问题,所以对长文本图片处理还是不太建议直接转换。
图文处理也可以借鉴一些各平台的API,百度、腾讯、美团都有支持.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
自学Python3第5天,今天突发奇想,想用Python识别图片里的文字。没想到Python实现图片文字识别这么简单,只需要一行代码就能搞定fromPILimp
本文为大家分享了python实现文字识别功能大全,供大家参考,具体内容如下1.通用文字识别#-*-coding:UTF-8-*-fromaipimportAip
如果想要识别行驶证的话该怎么办?这可以借助捷速OCR文字识别软件的,捷速OCR文字识别软件是一款非常专业的图像文字识别软件,提供图片文字识别、扫描文字识别、pd
本文实例为大家分享了python实现简单的文字识别的具体代码,供大家参考,具体内容如下Python版本:3.6.5百度云提供的文字识别技术,准确率还是非常高的,
图片文字提取方法如下: 1、利用常用的聊天通讯工具QQ 先随便选择一个好友发送该图片,然后点击图片发大查看,然后长按识别,就会对应弹出选项“提取图里文字”选