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)

 

posted @ 2020-12-15 22:24  月光男神  阅读(307)  评论(0编辑  收藏  举报