您好,登录后才能下订单哦!
python识别图像并提取文字的实现?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1. 依赖安装
yum install -y automake autoconf libtool gcc gcc-c++
2. 安装leptonica
Leptonica主要用于图像处理和图像分析
原则上所有的库文件都是可以直接用yum安装的,如果想要具体的某个版本,可以前往官方源下载对应版本然后按照对应方式编译
wget http://www.leptonica.org/source/leptonica-1.74.4.tar.gz tar -zxvf leptonica-1.74.4.tar.gz cd leptonica-1.74.4/ ./configure make && make install
3. 安装tesseract
其他各版本可以在这里下载并自行编译,也提供直接使用的文件。
yum install tesseract
4. 验证安装
tesseract --version
5. 语言包下载
前往tesseract-ocr/tessdata下载相应的语言包,然后将之移动到tessdata目录下,可以用whereis tesseract查看一下具体的目录,我的是/usr/share/tesseract/tessdata/mv *.traineddata /usr/local/share/tessdata/
6. 查看目前已下载的语言
tesseract --list-langs
使用
# tesseract Usage: 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.
语法
tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]
imagename:图片名字
outputbase:指定输出,如果希望直接输出而不是保存到文件,那么就使用 stdout,否则这个参数将会作为保存结果的文件的前缀
-l指定语言文件,默认使用英文
tesseract --print-parameters:查看更多参数信息
使用-c指定单项参数的值或者将配置写入配置文件放在命令最后(支持多个配置文件)
psm 识别图像的方式
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_to_data(image, lang=None, config='', nice=0, output_type=Output.STRING)
image Object,由Tesseract处理的图像的PIL Image/NumPy数组
lang String,Tesseract语言代码字符串
config String,任何其他配置字符串,例如:config='--psm 6'
语言文件可以叠加,用“+”隔开
我们也可以在这里进行tessdata路径的设置,跟在config里面即可
更多配置包括config和psm都和tesseract类似
实例:
流程: 打开图片,配置,转换,可以通过Image的open或者cv2的imread打开图片,之后对图片进行对比度增强,降噪等处理,效果会好一些。
from PIL import Image import pytesseract class 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))
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。