pytesseract库进行图片文字识别
Song •
2202 次浏览 •
0个评论 •
2018年07月03日
在做爬虫的时候经常遇到图片验证码。这是一个很蛋疼的东西,我每次都得自己去手动输入抓取的图片验证码。有没有办法可以通过OCR来进行处理图片中的文字呢?
嘛,不过今天这个pytesseract库只是一个基础的文字识别库。
首先当然是需要安装pytesseract库还有图像处理的PILLOW库了,走起——
pip install pytesseract
pip install PILLOW
然后要安装一个Tesseract-OCR
软件。这个软件是由Google
维护的开源的OCR
软件。Windows
下载地址:百度网盘(链接: https://pan.baidu.com/s/1ocQNcy3yEKirrPXM1Hgh_Q 密码: ncqc)。Mac Os
电脑使用brew
安装即可:
brew install tesseract
# 查看版本
tesseract -v
代码很简单:
# -*-encoding:utf-8-*-
import pytesseract
from PIL import Image
def main():
image = Image.open("1.jpg")
#image.show() #打开图片1.jpg
text = pytesseract.image_to_string(image,lang='chi_sim') #使用简体中文解析图片
#print(text)
with open("output.txt", "w") as f: #将识别出来的文字存到本地
print(text)
f.write(str(text))
if __name__ == '__main__':
main()
效果如下
这个代码对简单的文字识别是没有问题,但是对稍微有一点干扰的图片就无能为力了,所以需要去噪点和干扰线。这个问题还在看,改天写。
验证码识别
所谓降噪就是把不需要的信息通通去除,比如背景,干扰线,干扰像素等等,只剩下需要识别的文字,让图片变成2进制点阵最好。具体参考Python验证码识别:利用pytesser识别简单图形验证码
import pytesseract
from PIL import Image
# 导入Image包,打开图片
im = Image.open('images/captcha.png')
# 把彩色图像转化为灰度图像。
imgry = im.convert('L')
# 二值化处理
threshold = 180
table = []
for i in range(256):
if i < threshold:
table.append(0)
else:
table.append(1)
out = imgry.point(table, '1')
out.show()
# pytesseract实现识别
print(pytesseract.image_to_string(out))
用户评论
当前暂无评价,快来发表您的观点吧...
更多相关好文
当前暂无更多相关好文推荐...
-
微信公众号文章/菜单添加小程序时路径如何获取? 2021-12-22
-
如何轻松获取微信小程序路径path? 2021-12-22
-
cannot import name 'CUDA_HOME' from 'mmcv.utils' 2021-12-05
-
vgg的loss一轮达到ln(1/n)阈值,如何解决 2021-11-21
-
如何下载使用utils库 2021-10-27
热门文章
-
微信公众号文章/菜单添加小程序时路径如何获取? 2021-12-22
-
如何轻松获取微信小程序路径path? 2021-12-22
-
python/MySQL分页查询方法与性能优化 2021-06-23
-
mitmproxy & python 忽略所有的https/ssl请求 2021-04-19
-
如何使用邮件/邮箱推广微信公众号/小程序? 2021-01-28
栏目最新文章
公告提示
- pytorch中文文档
- pytorch官方文档
提交评论