python 图片去噪的方法示例


Posted in Python onJuly 09, 2019

图像可能在生成、传输或者采集过程中夹带了噪声,去噪声是图像处理中常用的手法。通常去噪声用滤波的方法,比如中值滤波、均值滤波。但是那样的算法不适合用在处理字符这样目标狭长的图像中,因为在滤波的过程中很有可能会去掉字符本身的像素。

一个采用的是去除杂点的方法来进行去噪声处理的。具体算法如下:扫描整个图像,当发现一个黑色点的时候,就考察和该黑色点间接或者直接相连接的黑色点的个数有多少,如果大于一定的值,那就说明该点不是离散点,否则就是离散点,把它去掉。在考察相连的黑色点的时候用的是递归的方法。此处,我简单的用python实现了,大家可以参考以下。

#coding=utf-8
"""
造物奇迹QQ2737499951
"""
import cv2
import numpy as np
from matplotlib import pyplot as plt
from PIL import Image,ImageEnhance,ImageFilter
 
img_name = 'test.jpg'
#去除干扰线
im = Image.open(img_name)
#图像二值化
enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(2)
im = im.convert('1')
data = im.getdata()
w,h = im.size
#im.show()
black_point = 0
for x in xrange(1,w-1):
  for y in xrange(1,h-1):
    mid_pixel = data[w*y+x] #中央像素点像素值
    if mid_pixel == 0: #找出上下左右四个方向像素点像素值
      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 == 0:
        black_point += 1
      if left_pixel == 0:
        black_point += 1
      if down_pixel == 0:
        black_point += 1
      if right_pixel == 0:
        black_point += 1
      if black_point >= 3:
        im.putpixel((x,y),0)
      #print black_point
      black_point = 0
im.show()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
paramiko模块安装和使用(远程登录服务器)
Jan 27 Python
python中的多线程实例教程
Aug 27 Python
Python读取word文本操作详解
Jan 22 Python
对pandas进行数据预处理的实例讲解
Apr 20 Python
python实现音乐下载的统计
Jun 20 Python
python中数组和矩阵乘法及使用总结(推荐)
May 18 Python
Python OpenCV 使用滑动条来调整函数参数的方法
Jul 08 Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
Apr 30 Python
Python脚本破解压缩文件口令实例教程(zipfile)
Jun 14 Python
python录音并调用百度语音识别接口的示例
Dec 01 Python
Python字符串的转义字符
Apr 07 Python
python 使用plt画图,去除图片四周的白边方法
Jul 09 #Python
浅谈Python小波分析库Pywavelets的一点使用心得
Jul 09 #Python
python basemap 画出经纬度并标定的实例
Jul 09 #Python
python实现列表中最大最小值输出的示例
Jul 09 #Python
python实现基于朴素贝叶斯的垃圾分类算法
Jul 09 #Python
python把ipynb文件转换成pdf文件过程详解
Jul 09 #Python
深入了解Python枚举类型的相关知识
Jul 09 #Python
You might like
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
JavaScript Date对象使用总结
2009/05/14 Javascript
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
jQuery第三课 修改元素属性及内容的代码
2010/03/14 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
JS实现的数组去除重复数据算法小结
2017/11/17 Javascript
Webpack之tree-starking 解析
2018/09/11 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python实现多线程采集的2个代码例子
2014/07/07 Python
python实现神经网络感知器算法
2017/12/20 Python
Python使用遗传算法解决最大流问题
2018/01/29 Python
python如何实现int函数的方法示例
2018/02/19 Python
Python利用sqlacodegen自动生成ORM实体类示例
2019/06/04 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
python绘制雪景图
2019/12/16 Python
Python单链表原理与实现方法详解
2020/02/22 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
Python就将所有的英文单词首字母变成大写
2021/02/12 Python
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
长青弘远的面试题
2012/06/09 面试题
大学生实习思想汇报
2014/01/12 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
学校万圣节活动方案
2014/02/13 职场文书
工作粗心大意检讨书
2014/09/18 职场文书