首页 > 编程知识 正文

图像降噪python算法,python复杂验证码识别

时间:2023-05-06 03:25:12 阅读:151678 作者:2135

python对验证码图像进行降噪处理

发布时间: 2018-05-16 20:38、

陟览次数: 962

、标签:

python

首先贴上验证码做盒子:

第一步是通过二值化处理消除干涉线。

from PIL import Image #二值化deftwo_value(:forIinrange ) 1,5 ) : #

打开文件夹中的图像image=image.open('./img/'str(I ) '.jpg ) #灰度lim=image.convert ) ' l ) )

#灰度阈值设定为165,所有低于此值的点都填充白色threshold=165 table=[ ] forjinrange (256 ) : if

Jj

BIM.save('./img2/'str ) I ).jpg ) (two_value ) ) )。

执行结果的图示如下。

然后,对黑白图像进行降噪以删除各个黑色像素点。

from PIL import Image #干涉线去除im=image.open('./img2/1.jpg ) #图像二值化data=

im.getdata(w,h=im.size black _ point=0forxinrange ) 1,w-1 ) : for y in

range(1,h-1 ) : mid_pixel=data[w*y x] #中央像素像素图像素值if mid_pixel 50: #

找出上下左右四个方向像素点的像素值top_pixel=data[w*(y-1 ) x]left_pixel=data[w*y(x-1] ) ]

down_pixel=data[w*(y1 ) x]right_pixel=data[w*y ) x1]#判断上下左右黑像素点的总个数if

top _ pixel 10: black _ point=1if left _ pixel 103360 black _ point=1if

down _ pixel 103360 black _ point=1if right _ pixel 103360 black _ point=1if

black_point=013360 im.putpixel ((x,y ),255 ) #print ) black _ point ) black_point=0

im.save(xxxx.jpg ) )。

结果如下图所示。

最后,删除附着在边界线上的黑色像素点。

from PIL import Image #干涉线去除im=image.open('./img2/1.jpg ) #图像二值化data=

im.getdata(w,h=im.size black _ point=0forxinrange ) 1,w-1 ) : for y in

range(1,h-1 ) :ifx2ory2:im.putpixel () x-1,y-1 ),255 ) if xw-3 or yh-3:

im.putpixel () x1,y 1 ),255 ) im.save ) ' XXX.jpg ' )。

执行结果:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。