python识别银行卡数字_Python+OCR图片文字识别,验证码识别,银行卡识别

Python+OCR图片文字识别,验证码识别,银行卡识别

利用测试如下:

1.识别文字

2.识别简单的验证码

3.识别银行卡

准备工作:

1.安装pytesseract库:pytesseract是Tesseract关于Python的接口,在cmd中可以直接使用pip install pytesseract安装

一直点确定后完成安装,并配置环境变量,

b4a0806fc74e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

在CMD中输入tesseract -v, 如显示以下界面,则表示Tesseract安装完成且添加到系统变量中。

b4a0806fc74e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

3.下载tesseract的简体中文语言包,下载地址为:https://github.com/tesseract-ocr/tessdata/find/master/chi_sim.traineddata ,再将chi_sim.traineddata放在C:\Program Files (x86)\Tesseract-OCR\tessdata目录下。

b4a0806fc74e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

做好准备工作就可以实现OCR文字识别了,代码非常简单:

importpytesseractfromPILimportImageimportcv2img=Image.open('0.jpg')#text = pytesseract.image_to_string(img,lang='chi_sim')pytesseract.pytesseract.tesseract_cmd='C://Program Files (x86)/Tesseract-OCR/tesseract.exe'text=pytesseract.image_to_string(img,lang='chi_sim')print(text)

0.jpg 如下:

b4a0806fc74e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

运行结果如下:

b4a0806fc74e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

如果出现报错:

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

2.笔者突然想到,利用Ocr 能不能识别简单的验证码呢?

于是在网上随便找了个验证码,如图:6.png:

b4a0806fc74e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

运行结果并不是让人满意,

b4a0806fc74e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

为了更好的处理图片,可以将图片转为灰度图片,再去掉黑点,进行二值化降噪,

代码如下:

importpytesseractfromPILimportImage,ImageEnhance,ImageFilterimportcv2img=Image.open('6.png')text=pytesseract.image_to_string(img,lang='chi_sim')print(text)# 将图片变成灰色img_gray=img.convert('L')img_gray.save('./tmp/ode_gray.png')# 转成黑白图片img_black_white=img_gray.point(lambdax:0ifx>200else255)pic1='./tmp/code_black_white.png'img_black_white.save(pic1)#要去掉黑点,就是一个二值化降噪的过程。可以用PIL(Python Image Library)试试im=Image.open(pic1)im=im.filter(ImageFilter.MedianFilter())enhancer=ImageEnhance.Contrast(im)im=enhancer.enhance(2)im=im.convert('1')im.save('./tmp/jiangzao.png')#im.show()pytesseract.pytesseract.tesseract_cmd='C://Program Files (x86)/Tesseract-OCR/tesseract.exe'#text = pytesseract.image_to_string(Image.open('./tmp/jiangzao.png'),lang='chi_sim')##,lang='eng 数字text=pytesseract.image_to_string(im,lang='chi_sim')print(text)

运行结果如下,成功!

b4a0806fc74e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

3.如果利用ocr识别银行卡呢?

修改图片如下

b4a0806fc74e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

运行结果如下:

b4a0806fc74e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

银行卡的识别结果却差强人意,这涉及到更深层次的opencv知识,笔者会在下篇详细的讲述如何使用OpenCV和python进行信用卡识别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值