python中ocr软件tesseract使用
首先要看原版的参考
https://github.com/madmaze/pytesseract
直接上代码,
import pytesseract
from PIL import Image
image = Image.open(r'D:\xingjinzi\5.jfif')
result =pytesseract.image_to_string(image,config='--psm 8 -c tessedit_char_whitelist=abceefghigklmnopqrstuvwxyz')
print(result)
# result =pytesseract.image_to_string (image,lang='eng') #英文
# result =pytesseract.image_to_string (image,lang='chi_sim') #简体中文
result =pytesseract.image_to_string(image,config='--psm 12 -c tessedit_char_whitelist=1234567890abceefghigklmnopqrstuvwxyz')
tessedit_char_whitelist=abceefghigklmnopqrstuvwxyz 相当于白名单,集可以有哪些字符
--psm 是一个识别方向引导的内容,参考
Page segmentation modes:
0 Orientation and script detection (OSD) only.
1 Automatic page segmentation with OSD.
2 Automatic page segmentation, but no OSD, or OCR.
3 Fully automatic page segmentation, but no OSD. (Default)
4 Assume a single column of text of variable sizes.
5 Assume a single uniform block of vertically aligned text.
6 Assume a single uniform block of text.
7 Treat the image as a single text line.
8 Treat the image as a single word.
9 Treat the image as a single word in a circle.
10 Treat the image as a single character.
11 Sparse text. Find as much text as possible in no particular order.
12 Sparse text with OSD.
13 Raw line. Treat the image as a single text line,
对应的中文如下
页面分割模式:
0仅限方向和脚本检测(OSD)。
1使用OSD自动分页。
2自动页面分割,但没有OSD或OCR。
3全自动页面分割,但没有OSD。 (默认)
4假设一列可变大小的文本。
5假设一个垂直对齐文本的统一块。
6假设一个统一的文本块。
7将图像视为单个文本行。
8将图像视为单个单词。
9将图像视为圆形中的单个单词。
10将图像视为单个字符。
11稀疏文字。 找到尽可能多的文本,没有特定的顺序。
12带OSD的稀疏文本。
13原始线。 将图像视为单个文本行
总得来说还不错的
1.语言库地址:https://github.com/tesseract-ocr/tessdata
2.语言库列表
| 库名 | 语言 |
|---|---|
| afr | Afrikaans(南非荷兰语) |
| amh | Amharic(阿姆哈拉语) |
| ara | Arabic(阿拉伯语) |
| asm | Assamese(阿萨姆) |
| aze | Azerbaijani(阿塞拜疆) |
| aze_cyrl | Azerbaijani - Cyrilic(阿塞拜疆-Cyrilic) |
| bel | Belarusian(白俄罗斯) |
| ben | Bengali(孟加拉) |
| bod | Tibetan(西藏) |
| bos | Bosnian(波斯尼亚) |
| bul | Bulgarian(保加利亚语) |
| cat | Catalan; Valencian(加泰罗尼亚语; 巴伦西亚) |
| ceb | Cebuano(宿务) |
| ces | Czech(捷克) |
| chi_sim | Chinese - Simplified(中国-简体) |
| chi_tra | Chinese - Traditional(中国-繁体) |
| chr | Cherokee(切诺基) |
| cym | Welsh(威尔士) |
| dan | Danish(丹麦) |
| dan_frak | Danish - Fraktur(丹麦-Fraktur) |
| deu | German(德国) |
| deu_frak | German - Fraktur(德国-Fraktur) |
| dzo | Dzongkha(不丹文) |
| ell | Greek, Modern (1453-)(希腊,现代(1453-)) |
| eng | English(英语) |
| enm | English, Middle (1100-1500)(英语,中东(1100-1500)) |
| epo | Esperanto(世界语) |
| equ | Math / equation detection module(数学/方程式检测模块) |
| est | Estonian(爱沙尼亚) |
| eus | Basque(巴斯克) |
| fas | Persian(波斯) |
| fin | Finnish(芬兰) |
| fra | French(法语) |
| frk | Frankish(法兰克) |
| frm | French, Middle (ca.1400-1600)(法国,中东(ca.1400-1600)) |
| gle | Irish(爱尔兰) |
| glg | Galician(加利西亚) |
| grc | Greek, Ancient (to 1453)(希腊语,古(到1453年)) |
| guj | Gujarati(古吉拉特语) |
| hat | Haitian; Haitian Creole(海天; 海地克里奥尔语) |
| heb | Hebrew(希伯来语) |
| hin | Hindi(印地文) |
| hrv | Croatian(克罗地亚) |
| hun | Hungarian(匈牙利) |
| iku | Inuktitut(因纽特语) |
| ind | Indonesian(印尼) |
| isl | Icelandic(冰岛) |
| ita | Italian(意大利语) |
| ita_old | Italian - Old(意大利语-旧) |
| jav | Javanese(爪哇) |
| jpn | Japanese(日本) |
| kan | Kannada(卡纳达语) |
| kat | Georgian(格鲁吉亚) |
| kat_old | Georgian - Old(格鲁吉亚-旧) |
| kaz | Kazakh(哈萨克斯坦) |
| khm | Central Khmer(中央高棉) |
| kir | Kirghiz; Kyrgyz(柯尔克孜; 吉尔吉斯) |
| kor | Korean(韩国) |
| kur | Kurdish(库尔德人) |
| lao | Lao(老挝) |
| lat | Latin(拉丁) |
| lav | Latvian(拉脱维亚) |
| lit | Lithuanian(立陶宛) |
| mal | Malayalam(马拉雅拉姆语) |
| mar | Marathi(马拉) |
| mkd | Macedonian(马其顿) |
| mlt | Maltese(马耳他) |
| msa | Malay(马来文) |
| mya | Burmese(缅甸) |
| nep | Nepali(尼泊尔) |
| nld | Dutch; Flemish(荷兰; 佛兰芒语) |
| nor | Norwegian(挪威) |
| ori | Oriya(奥里亚语) |
| osd | Orientation and script detection module(定位及脚本检测模块) |
| pan | Panjabi; Punjabi(旁遮普语; 旁遮普语) |
| pol | Polish(波兰) |
| por | Portuguese(葡萄牙语) |
| pus | Pushto; Pashto(普什图语; 普什图语) |
| ron | Romanian; Moldavian; Moldovan(罗马尼亚; 摩尔多瓦; 摩尔多瓦) |
| rus | Russian(俄罗斯) |
| san | Sanskrit(梵文) |
| sin | Sinhala; Sinhalese(僧伽罗语; 僧伽罗语) |
| slk | Slovak(斯洛伐克) |
| slk_frak | Slovak - Fraktur(斯洛伐克- Fraktur) |
| slv | Slovenian(斯洛文尼亚) |
| spa | Spanish; Castilian(西班牙语; 卡斯蒂利亚) |
| spa_old | Spanish; Castilian - Old(西班牙语; 卡斯蒂利亚-老) |
| sqi | Albanian(阿尔巴尼亚) |
| srp | Serbian(塞尔维亚) |
| srp_latn | Serbian - Latin(塞尔维亚语-拉丁语) |
| swa | Swahili(斯瓦希里语) |
| swe | Swedish(瑞典) |
| syr | Syriac(叙利亚) |
| tam | Tamil(泰米尔) |
| tel | Telugu(泰卢固语) |
| tgk | Tajik(塔吉克斯坦) |
| tgl | Tagalog(菲律宾语) |
| tha | Thai(泰国) |
| tir | Tigrinya(提格雷语) |
| tur | Turkish(土耳其) |
| uig | Uighur; Uyghur(维吾尔族; 维吾尔) |
| ukr | Ukrainian(乌克兰) |
| urd | Urdu(乌尔都语) |
| uzb | Uzbek(乌兹别克斯坦) |
| uzb_cyrl | Uzbek - Cyrilic(乌兹别克斯坦- Cyrilic) |
| vie | Vietnamese(越南语) |
| yid | Yiddish(意第绪语) |
python中ocr软件tesseract使用的更多相关文章
- 孤荷凌寒自学python第八十三天初次接触ocr配置tesseract环境
孤荷凌寒自学python第八十三天初次接触ocr配置tesseract环境 (完整学习过程屏幕记录视频地址在文末) 学习Python我肯定不会错过图片文字的识别,当然更重要的是简单的验证码识别了,今天 ...
- python中软件开发规范,模块,序列化随笔
1.软件开发规范 首先: 当代码都存放在一个py文件中时会导致 1.不便于管理,修改,增加 2.可读性差 3.加载速度慢 划分文件1.启动文件(启动接口)--starts文件放bin文件里2.公共文件 ...
- 使用Python进行OCR -- 识别图片中的文字
工具 Tesseract pytesseract tesserocr 朋友需要一个工具,将图片中的文字提取出来.我帮他在网上找了一些OCR的应用,都不好用.所以准备自己研究,写一个Web APP供他使 ...
- OCR库Tesseract初探
1.Tesseract 安装及使用 一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,与Microsoft Off ...
- 浅谈OCR之Tesseract
光 学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程.OCR技术非常专业,一般多是印刷.打印 ...
- python中协程
在引出协成概念之前先说说python的进程和线程. 进程: 进程是正在执行程序实例.执行程序的过程中,内核会讲程序代码载入虚拟内存,为程序变量分配空间,建立 bookkeeping 数据结构,来记录与 ...
- Python::re 模块 -- 在Python中使用正则表达式
前言 这篇文章,并不是对正则表达式的介绍,而是对Python中如何结合re模块使用正则表达式的介绍.文章的侧重点是如何使用re模块在Python语言中使用正则表达式,对于Python表达式的语法和详细 ...
- Python中出现的异常
简单的写几种我知道的关于Python中出现的异常含义,希望大神批评指正,我只是学软件开发的菜鸟,前面的路还很长,我会努力学习! 什么是异常? 异常既是一个事件,该事件会在程序执行过程中发生,影响了程序 ...
- Python中的字符串与字符编码
本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常谈的话题,同行们都写过很多这方面的文章. ...
随机推荐
- xml报文标签替换正则表达式
写在前面 需求是把所有标签中的信息替换成指定内容 例如: <transName>交易名称</transName><aaa></aaaa><tran ...
- 【Docker】容器与系统时间同步
宿主机时间 [root@slave-1 ~]# date Fri May 12 11:20:30 CST 2017 容器时间 [root@slave-1 ~]# docker exec -ti 879 ...
- Web打印的解决方案之证件套打
由于以前未接触过套打,一直觉得套打是一个比较神秘和麻烦的事情,因为打印机的位置总是需要调整的,你总不能硬编码吧?但是如果位置可调,有需要直观一些来处理,那就比较麻烦了. 在前面介绍过<Web打印 ...
- FastStone Capture 9.3 强烈推荐,常用功能介绍
http://www.dayanzai.me/faststone-capture.html 经典优秀屏幕截图录像工具 FastStone Capture 9.3 绿色汉化中文版 下载 官网: ht ...
- Scrapy之Spider
Spider Spider类定义了如何爬取某个(或某些)网站.包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item). 换句话说,Spider就是您定义爬取的动作及 ...
- WPF,回车即是tab
正在做的WPF项目,客户需要在文本框里输入后按回车即跳到下一个框框,和tab一样的 上网搜索了下解决方案:如下: 在文本框外围 的grid加上KeyDown事件,代码里写上: /// <summ ...
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
C#实现通过HttpWebRequest发送POST请求实现网站自动登陆 怎样通过HttpWebRequest 发送 POST 请求到一个网页服务器?例如编写个程序实现自动用户登录,自动提交表单数 ...
- 解决catalina.out文件过大的问题
有用Tomcat的人,绝对都会遇到这样一个问题:catalina.out文件过大. 它是Tomcat默认生成的日志文件,会随着时间的推移,逐渐增大,不断的增长,甚至达到几G,几十G的大小.由于文件过大 ...
- FastJson序列化时过滤字段(属性)的方法总结
FastJson序列化时(即转成JSON字符串时),可以过滤掉部分字段,或者只保留部分字段,方法有很多,下面举一些常用的方法. 方法一.FastJson的注解 @JSONField(serialize ...
- SonarQube + Jenkins代码审查环境安装文档 v1.2
1. 安装SonarQube 1.1. 下载 下载地址:https://www.sonarqube.org/downloads/ 本次使用安装包为:sonarqube-7.4.zip 需要提前准备jd ...