资讯详情

python爬虫-31-python图形验证码进阶,识别中文(二)

图片

有些验证码是中文的,使用时可能会发现,不能支持中文识别,那么应该如何解决呢?

1、python识别图片中的中文字符-old

让我们来看看默认情况下中文是什么样子的。例如,我们应该识别下图:

然后我们写以下代码:

import pytesseract from PIL import Image  pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe" image = Image.open(r"C:\Users\22768\Desktop\gzh\chinese_0.jpg") text = pytesseract.image_to_string(image, lang='eng osd') print(text)  

运行结果:

f?’:  赖荤 蝴  

可见没有识别,是乱码;

2、安装tesseract新版本 tesseract语言包

python通过tesseract识别图形中文乱码是因为安装时没有选择,在上一篇文章中,我们直接默认下一次安装,安装版本是tesseract-ocr-setup-3.02.02.exe,这个版本可以选择其他语言来支持安装,但是你只能选择,并没办法进行下载。而且官网上没有语言支持包,所以我在这里找到了一个新的**5.1.0**安装版本的程序包,这个软件包没问题;

获取tesseract软件包的方式如下:

微信微信官方账号运维家,后台回复:resseract软件包

即可获取tesseract软件包网盘下载地址;

tesseract在软件安装过程中,windows必须选择安装路径:

C:\Program Files (x86)\Tesseract-OCR  

如果是windows务必选择以上路径进行安装哈;

我们可以选择语言,点击Additional language data(download)前面的符号会显示很多语言。如果识别的内容比较复杂,建议择,下载所有语言包。为了在这里演示,我只选择了与中文有关的,也就是抬头说:Chinese”的;

然后点击下一步。在这里,我们可以看到下图中的安装界面,这可能很慢,因为他会一个接一个地下载语言包。我们可以耐心等待;

以下界面表示安装成功;

tesseract软件无法下载语言包或tesseract下载,如果有这样的问题,为什么?这很简单,因为他的语言包在国外,那我们怎么解决呢?我在这里准备了一个完整的语言包,直接解压覆盖你resseract在安装路径中tessdata这个文件夹就可以了。

获取tesseract 5.1.0语言包的方式如下:

微信微信官方账号运维家,后台回复:tesseract语言包

即可获取tesseract语言包网盘下载地址;

然后我们需要将C:\Program Files (x86)\Tesseract-OCR\tessdata这条路径下的所有内容都被复制到C:\Program Files (x86)\Tesseract-OCR目录下方可报错以下信息:

pytesseract.pytesseract.TesseractError: (1, 'Error opening data file C:\\Program Files (x86)\\Tesseract-OCR\\eng.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory. Failed loading language \'eng\' Tesseract couldn\'t load any languages! Could not initialize tesseract.')  

3、再次使用tesseract中文识别

让我们看看他现在支持多少种语言;

import pytesseract pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe" print(pytesseract.get_languages())  

运行结果如下:

['chi_sim', 'chi_sim_vert', 'chi_tra', 'chi_tra_vert', 'eng', 'osd']  

使用上面提供的语言包后,会发现支持的语言变成了以下几种:

['afr', 'amh', 'ara', 'asm', 'aze', 'aze_cyrl', 'bel', 'ben', 'bod', 'bos', 'bre', 'bul', 'cat', 'ceb', 'ces', 'chi_sim', 'chi_sim_vert', 'chi_tra', 'chi_tra_vert', 'chr', 'cos', 'cym', 'dan', 'deu', 'div', 'dzo', 'ell', 'eng', 'enm', 'epo', 'equ', 'est', 'eus', 'fao', 'fas', 'fil', 'fin', 'fra', 'frk', 'frm', 'fry', 'gla', 'gle', 'glg', 'grc', 'guj', 'hat', 'heb', 'hin', 'hrv', 'hun', 'hye', 'iku', 'ind', 'isl', 'ita', 'ita_old', 'jav', 'jpn', 'jpn_vert', 'kan', 'kat', 'kat_old', 'kaz', 'khm', 'kir', 'kmr', 'kor', 'lao', 'lat', 'lav', 'lit', 'ltz', 'mal', 'mar', 'mkd', 'mlt', 'mon', 'mri', 'msa', 'mya', 'nep', 'nld', 'nor', 'oci', 'ori', 'osd', 'pan', 'pol', 'por', 'pus', 'que', 'ron', 'rus', 'san', 'sin', 'slk', 'slv', 'snd', 'spa', 'spa_old', 'sqi', 'srp', 'srp_latn', 'sun', 'swa', 'swe', 'syr', 'tam', 'tat', 'tel', 'tgk', 'tha', 'tir', 'ton', 'tur', 'uig', 'ukr', 'urd', 'uzb', 'uzb_cyrl', 'vie', 'yid', 'yor']  

这时,让我们再次识别文章开头的图片,看看是否已经识别出来。

import pytesseract from PIL import Image  pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe" image = Image.open(r"C:\Users\22768\Desktop\gzh\1654881934269.jpg") text = pytesseract.image_to_string(image, lang='chi_sim chi_sim_vert chi_tra chi_tra_vert') print(text)  

运行结果如下:

运维家  

那我们再来看一张字多的图片再试一次,比如:

运行代码

import pytesseract from PIL import Image  pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe" image = Image.open(r"C:Users\22768\Desktop\gzh\1654882172968.jpg")
text = pytesseract.image_to_string(image, lang='chi_sim+chi_sim_vert+chi_tra+chi_tra_vert')
print(text)

结果:

钟山风雨起苔划,百万雄师过大江。
虎跟龙盘今胜苦,天翻地覆慨而慷。
二将剩筋追穷坪,不可沽名学等王。
天吞有情天订老,人间正道是沧对 。

不可避免有一些错字,但是已经很少了。

至此,本文结束。相关内容每日更新。

更多内容请转至VX公众号 “运维家” ,获取最新文章。

------ “运维家” ------ ------ “运维家” ------ ------ “运维家” ------

linux系统下,mknodlinux,linux目录写权限,大白菜能安装linux吗,linux系统创建文件的方法,领克linux系统怎么装软件,linux文本定位; ocr识别linux,linux锚定词尾,linux系统使用记录,u盘有linux镜像文件,应届生不会Linux,linux内核64位,linux自启动管理服务; linux计算文件夹大小,linux设备名称有哪些,linux能用的虚拟机吗,linux系统进入不了命令行,如何创建kalilinux,linux跟so文件一样吗。

标签: s3urd交流电压变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台