使用python 对验证码图片进行降噪处理


Posted in Python onDecember 18, 2019

首先贴一张验证码上来做案例:

使用python 对验证码图片进行降噪处理

第一步先通过二值化处理把干扰线去掉:

from PIL import Image
 
# 二值化处理
def two_value():
  for i in range(1,5):
    # 打开文件夹中的图片
    image=Image.open('./Img/'+str(i)+'.jpg')
    # 灰度图
    lim=image.convert('L')
    # 灰度阈值设为165,低于这个值的点全部填白色
    threshold=165
    table=[]
    
    for j in range(256):
      if j<threshold:
        table.append(0)
      else:
        table.append(1)
 
    bim=lim.point(table,'1')
    bim.save('./Img2/'+str(i)+'.jpg')
 
two_value()

运行结果图如下:

使用python 对验证码图片进行降噪处理

然后对黑白图片进行降噪,去掉那些单独的黑色像素点:

from PIL import Image
 
# 去除干扰线
im = Image.open('./Img2/1.jpg')
# 图像二值化
data = im.getdata()
w,h = im.size
black_point = 0
 
for x in range(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*(y+1)+x]
      right_pixel = data[w*y+(x+1)]
 
      # 判断上下左右的黑色像素点总个数
      if top_pixel <10:
        black_point += 1
      if left_pixel <10:
        black_point += 1
      if down_pixel <10:
        black_point += 1
      if right_pixel <10:
        black_point += 1
      if black_point <1:
        im.putpixel((x,y),255)
      # print(black_point)
      black_point = 0
 
im.save('xxxx.jpg')

运行结果如下图所示:

使用python 对验证码图片进行降噪处理

最后对边框上附着的黑色像素点进行消除:

from PIL import Image
 
# 去除干扰线
im = Image.open('./Img2/1.jpg')
# 图像二值化
data = im.getdata()
w,h = im.size
black_point = 0
 
for x in range(1,w-1):
  for y in range(1,h-1):
    if x<2 or y<2 :
      im.putpixel((x-1, y-1), 255)
    if x>w-3 or y>h-3:
      im.putpixel((x+1 , y+1 ), 255)
 
im.save('xxx.jpg')

运行结果:

使用python 对验证码图片进行降噪处理

以上这篇使用python 对验证码图片进行降噪处理就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用dis模块把Python反编译为字节码的用法详解
Jun 14 Python
Python实现的基于优先等级分配糖果问题算法示例
Apr 25 Python
python使用tornado实现简单爬虫
Jul 28 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
Oct 17 Python
virtualenv 指定 python 解释器的版本方法
Oct 25 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
May 23 Python
Flask框架学习笔记之使用Flask实现表单开发详解
Aug 12 Python
Python面向对象编程基础实例分析
Jan 17 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 Python
python实现ping命令小程序
Dec 28 Python
如何编写python的daemon程序
Jan 07 Python
使用numpngw和matplotlib生成png动画的示例代码
Jan 24 Python
如何使用Python多线程测试并发漏洞
Dec 18 #Python
Python实现图像去噪方式(中值去噪和均值去噪)
Dec 18 #Python
python 中值滤波,椒盐去噪,图片增强实例
Dec 18 #Python
Django中使用MySQL5.5的教程
Dec 18 #Python
Python hashlib加密模块常用方法解析
Dec 18 #Python
Python实现中值滤波去噪方式
Dec 18 #Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 #Python
You might like
PHP的开发框架的现状和展望
2007/03/16 PHP
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
2015/12/25 PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
2016/05/17 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
js滚动条回到顶部的代码
2011/12/06 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
js针对ip地址、子网掩码、网关的逻辑性判断
2016/01/06 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
2016/11/09 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
在Django中限制已登录用户的访问的方法
2015/07/23 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
PyCharm 设置SciView工具窗口的方法
2019/01/15 Python
python树的同构学习笔记
2019/09/14 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
解决jupyter notebook 前面书写后面内容消失的问题
2020/04/13 Python
高考寄语大全
2014/04/08 职场文书
春季防火方案
2014/05/10 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
2014年银行工作总结范文
2014/11/12 职场文书
车间安全生产管理制度
2015/08/06 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python
golang 实用库gotable的具体使用
2021/07/01 Golang