图像降噪python算法,python复杂验证码识别
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 ' )。
执行结果: