首先贴一张验证码上来做案例:
<强>第一步先通过二值化处理把干扰线去掉:强>
从公益诉讼导入图像 #二值化处理 def two_value (): 我的范围(1、5): #打开文件夹中的图片 形象=Image.open (’。/Img/' + str(我)+ . jpg) #灰度图 lim=image.convert (L) #灰度阈值设为165,低于这个值的点全部填白色 阈值=165 表=[] 范围的j (256): 如果j<阈值: table.append (0) 其他: table.append (1) bim=lim.point(表,' 1 ') bim.save ('。/Img2/' + str (i) + . jpg) two_value () >之前运行结果图如下:
<>强然后对黑白图片进行降噪,去掉那些单独的黑色像素点:强>
从公益诉讼导入图像 #去除干扰线 我=Image.open (“/Img2/1.jpg。”) #图像二值化 data=https://www.yisu.com/zixun/im.getdata () w h=im.size black_point=0 x的范围(w1): h - y的范围(1): mid_pixel=数据(w * y + x) #中央像素点像素值 如果mid_pixel <50: #找出上下左右四个方向像素点像素值 top_pixel=数据(w * (y-1) + x) left_pixel=数据(w * y + (x - 1)) down_pixel=数据[w * (y + 1) + x) [w * y right_pixel=数据+ (x + 1)] #判断上下左右的黑色像素点总个数 如果top_pixel <10: black_point +=1 如果left_pixel <10: black_point +=1 如果down_pixel <10: black_point +=1 如果right_pixel <10: black_point +=1 如果black_point <1: im.putpixel ((x, y), 255) #打印(black_point) black_point=0 im.save (“xxxx.jpg”) >之前运行结果如下图所示:
<强>最后对边框上附着的黑色像素点进行消除:强>
从公益诉讼导入图像 #去除干扰线 我=Image.open (“/Img2/1.jpg。”) #图像二值化 data=https://www.yisu.com/zixun/im.getdata () w h=im.size black_point=0 x的范围(w1): h - y的范围(1): 如果x <2或y <2: 即时通讯。putpixel (x - 1, y-1), 255) 如果x>和或y> h-3: 即时通讯。putpixel ((x + 1, + 1), 255) im.save (“xxx.jpg”) >之前运行结果:
以上这篇使用python对验证码图片进行降噪处理就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
使用python对验证码图片进行降噪处理