(源码分享)利用Python识别提取图像文字(中文英文都可以)

Python018

(源码分享)利用Python识别提取图像文字(中文英文都可以),第1张

你想了解怎么利用程序自动识别网站验证码吗?识别提取图像文字(中文英文都可以)

分享一点简单有用的小项目:python

源码分享如下:

看视频教程链接:(点击识别图像文字视频教程链接)

一、首先需要安装 Tesseract模块及 语言包

Tesseract OCR光学字符识别

Windows系统:

安装网站 (放在不需要权限的纯英文路径下):

: https://digi.bib.uni-mannheim.de/tesseract/

可以下载一些语言包:

https://github.com/tesseract-ocr/

安装完成后,如果想要在命令行中使用Tesseract,那么应该设置环境变量。

还有一个环境变量需要设置的是,要把训练的数据文件路径也放到环境变量中。

在环境变量中,添加一个TESSDATA_PREFIX=C:path_to_tesseractdata eseractdata。

在Python代码中操作tesseract。需要安装一个库,叫做pytesseract。通过pip的方式即可安装:

pip install pytesseract

并且,需要读取图片,需要借助一个第三方库叫做PIL。通过pip list看下是否安装。如果没有安装,通过pip的方式安装:

pip install PIL

使用pytesseract将图片上的文字转换为文本文字的示例代码如下:

法一:

isinstance(s, str) 用来判断是否为一般字符串

isinstance(s, unicode) 用来判断是否为unicode

if type(str).__name__!="unicode":

str=unicode(str,"utf-8")

else:

pass

法二:

Python chardet 字符编码判断

使用 chardet 可以很方便的实现字符串/文件的编码检测。尤其是中文网页,有的页面使用GBK/GB2312,有的使用UTF8,如果你需要去爬一些页面,知道网页编码很重要的,虽然HTML页面有charset标签,但是有些时候是不对的。那么chardet就能帮我们大忙了。 

chardet实例

>>>import urllib

>>>rawdata = urllib.urlopen('http://www.google.cn/').read()

>>>import chardet

>>>chardet.detect(rawdata)

{'confidence': 0.98999999999999999, 'encoding': 'GB2312'}

>>>chardet可以直接用detect函数来检测所给字符的编码。函数返回值为字典,有2个元数,一个是检测的可信度,另外一个就是检测到的编码。

chardet 安装

下载chardet后,解压chardet压缩包,直接将chardet文件夹放在应用程序目录下,就可以使用import chardet开始使用chardet了。 

或者使用setup.py安装文件,将chardet拷贝到Python系统目录下,这样所有的python程序只要用import chardet就可以了。