python 图片验证码降噪
一、使用skimage对比较模糊的字符验证码进行黑白化,提高识别度。
需要清洗的图
1 from skimage import io,data,filters 2 from skimage import color,exposure 3 # 读取图片,显示的图片的nadarray数据 4 captch = io.imread('./code1.jpg') 5 # 显示图片 6 # io.imshow(captch) 7 # 黑白化图片,黑白的图片能够提高图片的识别率 8 gray = color.rgb2gray(captcha) 9 # 获取图片的shape值 10 h,w = gray.shape 11 # 将图片中的干扰去除,只保留字符 12 for i in range(h): 13 for j in range(w): 14 # 根据索引去除像素,0-1;值越小越黑,越大越白 15 # 设置一个阈值,当图片像素小于阈值就为0黑色,大于阈值为1白色 16 # 这里的阈值取0.5 17 if gray[i,j] < 0.5: 18 gray[i,j]=0 19 else : 20 gray[i,j] = 1 21 io.imshow(gray)
清洗后:
二、对图片的处理,提高图片的清晰度:
1、使用直方图均匀化图片:
#导包... # 这里读取的是自身提供的库图片 moon = data.moon() # 展示原图 # io.imshow(moon) moon_hist = exposure.equalize_hist(moon) io.imshow(moon_hist)