工业和消费领域,图像获取主要依赖于电子元件CMOS和CCD,以光电转化的形式转化为电信号。信号在传输的过程中会因为电信号的本身干扰,发生失真。常见的噪声有椒盐噪声、高斯白噪声等。

一般来说,各种图像噪声是有模式的,因此可以用一定模式生成的模板使用反向卷积处理的方法,在一定程度上去除噪声。

1、高斯白噪声

一般性的光线教暗容易使图像产生高斯白噪声,噪声产生并非严格遵循高斯分布,一般为高斯分布的近似形式。

一般没有明显的颗粒感,为随机噪声。

抵消高斯噪声影响的方法一般为使用高斯平滑滤波器,高斯平滑核一般取高斯分布:

F(x, y, z) = 1/2pi*u^2  *Exp(-(x^2+ y^2 ) /2*u^2 )

一个五层高斯卷积核:

[ 0.002

0.013      0.060

0.220      0.098      0.162

0.096

0.002   ]  ,整个核为对称阵,并且轴对称...

加速:快速卷积算法为把一次二维卷积拆成两次一维卷积,使用向量化进行并行计算。

使用OpenCV:

获得高斯核: Mat getGaussianKernel(int ksize, double sigma, int ktype=CV_64F );

使用高斯核:

    Mat img, gray;if( argc != 2 && !(img=imread(argv[1], 1)).data) return -1;cvtColor(img, gray, CV_BGR2GRAY);GaussianBlur( gray, gray, Size(9, 9), 2, 2 );  // smooth it, otherwise a lot of false circles may be detected

2.均值滤波:

使用一个均值滤波器来模糊图像来模糊噪声,效果当然是不太好的。

一个三层卷积核:

[ 1      1        1

1      1       1

1      1       1 ]  *   1/9

使用OpenCV:C++:    void medianBlur(InputArray src, OutputArray dst, int ksize)

3.椒盐噪声:

       也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的孤立白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。盐和胡椒噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误(传输干扰、解码误差)等。例如失效的感应器导致像素值为最小值,饱和的感应器导致像素值为最大值。

转自于 维基:

       

常用的去除这种噪声的有效手段是使用中值滤波器。下面的实例图像分别是原始图像、带有椒盐噪声的图像、经过平均滤波器修复的图像以及经过中值滤波器修复的图像。

效果:凭视觉感受一下椒盐的颗粒大小Pixels,把中值滤波器的卷积核的Pixels个中间像素设置为0,一般能达到效果。

一个三层卷积核:

[ 1      1        1

1       0       1

1      1        1 ]  *   1/8

非线性处理方式

一般使用非线性滤波器处理椒盐噪声的方法,以下将简介三种解决方法。

异常值侦测

异常侦测(Anomaly detection)有时称为异常值侦测(Outlier detection),如其名所隐含的,在给定的资料集合中,它将侦测在已有的规律中表现异常者。现今常用的方法以计算距离为基础的K-近邻算法或是机器学习中的支持向量机等,下图的例子以平均数为基础,在3X3的遮罩中,计算每个像素的平均值,与平均值相差绝对值ε的像素值将被平均值取代,其中,遮罩大小和误差值ε则是和输入图片内容相关。

Outlier detection的缺点在于用平均值替代像素值,会造成像素值单一的背景出现异常的杂点(如天空),虽然相较于原本的盐与胡椒噪声不明显,但仍然可以看出噪声。

中值滤波器

中值滤波器(Median filtering) 如其名所隐含的,它将一个像素的值用该像素邻域中强度值的中间值来取代(计算中间值的过程中,也会将该像素的原始值包含),中值滤波器在处理盐和胡椒噪声上能提供绝佳的噪声降低效能。中值滤波器所衍伸的问题是计算速率,举例而言,要计算5个元素的中值滤波器的计算过程如下:

       
    

先取最小值再取最大值可以得到中间值,但做最小值的过程中,需要先考虑10个可能的选项(),由于计算速度的考量,因此促进了Pseudo-median filtering (PMED)的产生。 中值滤波器的缺点为让边缘模糊、较不锐利,由于使用中间值替代向素值,在像素值容易有较大变化的地方,如边界或细节的地方,会被模糊。

伪中值滤波器

为了改进中值滤波器的计算速率,伪中值滤波器(Pseudo-median filtering) 以近似的方法算出中间值,以5个元素的伪中值滤波器为例,

其中,MAXMIN会低估中间值,而MINMAX会高估中间值,将两者平均起来以近似中间值。应用在2D的伪中值滤波器可以有许多取法,例如:

            

4.双边滤波器

参考:http://blog.csdn.net/abcjennifer/article/details/7616663

源于高斯模糊方法,用于保边去噪。方法为:当亮度差值过大时,通过下降滤波器权重来防止边界模糊,算是一个动态滤波器。

Matlab实现保边滤波器的函数是:  

w = 5;       % bilateral filter half-width
sigma = [3 0.1]; % bilateral filter standard deviations
N =double(Img)/255;
S =bfilter2(N,w,sigma);

OpenCV实现保边滤波器的函数是:

int d=2;
double sigmaColor=0.1; double sigmaSpace=0.3;
int borderType = BORDER_DEFAULT;
Mat pFilterMatB = Mat(Size(pGrayMat.rows, pGrayMat.cols), CV_8SC1);cv::bilateralFilter(pGrayMat, pFilterMatB, d, sigmaColor, sigmaSpace, borderType);

5、实验结果:

参考链接:图像滤波常见方法原理总结及VC下实现

自己写的Conv2滤波器效果还是不如Matlab,差距太明显了...

参考:基本噪声类型-转自于百科

白噪声:白噪声(white noise)是指功率谱密度在整个频域内均匀分布, 所有频率具有相同能量密度的随机噪声。

从我们耳朵的频率响应听起来它是非常明亮的“咝”声(每高一个八度,频率就升高一倍。因此高频率区的能量也显著增强)。

起源于,70年代中期国际上新创立的无穷维Schwartz广泛函数理论。具有:功率谱密度恒定:S(ω)=S0;信号自相关:R(τ)=S0δ(τ);数学期望:E(X(t)]=0;均方值:E[X(t)^2]<∞;其中δ(τ)是Dirac函数。的随机噪声,中文翻译为白噪声。

白噪声不是严格意义上的噪声,而是一种良好的信号频率模式。

特点:它的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。它的幅度遵从高斯(正态)分布, 而功率谱类似于白色光谱,均匀分布于整个频率轴 , 故称为白噪声。白噪声主要包含三类:无源器件,如电阻、馈线等类导体中电子布朗运动引起的热噪声;有源器件,如真空电子管和半导体器件中由于电子发射的不均匀性引起的散粒噪声;以及宇宙天体辐射波对接收机形成的宇宙噪声。其中前两类是主要的。

高斯白噪声:如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。

脉冲噪声( 椒盐噪声 ):脉冲噪声(impulsive noise)是非连续的,由持续时间短和幅度大的不规则脉冲或噪声尖峰组成。产生脉冲噪声的原因多种多样,其中包括电磁干扰以及通信系统的故障和缺陷,也可能在通信系统的电气开关和继电器改变状态时产生。

瑞利噪声 :瑞利噪声是指它的概率密度函数服从瑞利分布的一类噪声。瑞利分布(Rayleigh Distribution):当一个随机二维向量的两个分量呈独立的、有着相同的方差的正态分布时,这个向量的模呈瑞利分布。
      特点:尖峰、拖尾
Erlang噪声:Erlang噪声又称作伽马(爱尔兰)噪声,服从了伽马曲线的分布。
      

参考:图像空域噪声与二维降噪算法.

图像基本群运算--滤波相关推荐

  1. C语言实现图像中值滤波与均值滤波

    中值滤波 中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值.中值滤波容易去除孤立点,线的噪声同时保持图象的边缘,对椒盐噪声有较好的滤波效果:它能很好 ...

  2. opencv图像恢复逆滤波_OpenCV之快速的图像边缘滤波算法

    python代码: import cv2 as cv import numpy as npsrc = cv.imread("./test.png") cv.namedWindow( ...

  3. 图像中值滤波python代码_图像中值滤波FPGA实现

    C语言实用数字图像处理.pdf6.34 MB05-11-13|19:30 FPGA实验报告-李炎东.doc633.66 kB16-01-14|10:28 中值滤波在红外成像引信中的应用及硬件实现.ca ...

  4. matlab实现频域率滤波,基于Matlab的图像的频域滤波实现及研究.doc

    摘要:图像的频域滤波是图像增强的一种方法.图像增强是图像处理的方法之一,有频率域法和空间域法.频率域法把图像看成一种二维信号,对其进行二维傅里叶变换的信号增强,采用低通滤波法可以去掉图像的噪声:采用高 ...

  5. 图像保边滤波算法集锦系列

    在美颜算法的实现中,如何既能把人脸皮肤磨得光滑,雀斑磨得干净,又能保留五官的自然清晰,这就需要一种能保留边缘信息的平滑滤波器,这种滤波器的好坏在一定程度上,也就影响了美颜磨皮效果的好坏,对此,本人将在 ...

  6. 图像卷积与滤波的一些知识点

    图像卷积与滤波的一些知识点 zouxy09@qq.com http://blog.csdn.net/zouxy09 之前在学习CNN的时候,有对卷积进行一些学习和整理,后来就烂尾了,现在稍微整理下,先 ...

  7. 【OpenCV图像处理】十七、图像的导向滤波

    http://blog.csdn.net/qq_34784753/article/details/70229009?locationNum=12&fps=1 导向图滤波是一种图像滤波技术,通过 ...

  8. 干货分享 基于MATLAB的带噪图像的高斯滤波论文

    基于MATLAB的带噪图像的高斯滤波 摘要:图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声.脉冲噪声.高斯噪声等.椒盐噪声含有随机出现的黑白 ...

  9. 基于MATLAB的带噪图像的高斯滤波

    基于MATLAB的带噪图像的高斯滤波 摘要:图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声.脉冲噪声.高斯噪声等.椒盐噪声含有随机出现的黑白 ...

最新文章

  1. 1035 插入与归并
  2. VBScript 之文件 IO 篇
  3. ASA IPSEC ×××配置
  4. Java程序运行纳秒级差值计算
  5. 多线程之实现Runnable接口及其优点
  6. java光标修订_如何在java中更改鼠标光标?
  7. WEB2.0开发平台
  8. Kafka 与Spark的集成
  9. 台式linux桌面远程链接华为云windows服务器桌面
  10. iOS换肤功能的简单处理框架
  11. telegtram的通信协议MTproto2.0学习3 之 (telethon代码分析与TL的实现1)
  12. phpcms v9 wap手机门户分页(显示首页末页)
  13. 欧派caxa设计软件_CAXA软件三维设计的基本使用方法
  14. wcdma码片速率_码片速率 解释
  15. python 爬取种子_Python爬虫框架Scrapy 学习笔记 2 ----- 爬取Mininova网站种子文件信息...
  16. Linux 3.x 的platform
  17. 数据库SQL Server 如何将数据库表名等前缀转换成dbo
  18. 树与二叉树——有关n叉树的若干问题
  19. Profiler Others占用时间过高的解决方法
  20. 怎么把PDF转换成Excel文件?分享两种简单好用的转换方法

热门文章

  1. eclipse下面web工程没有src/main目录
  2. spring boot与spring mvc的区别是什么?
  3. hive2solr问题小结
  4. 从web移动端布局到react native布局
  5. Tomcat输出catalina.out的大小控制
  6. UITabBarController详解
  7. Android 给按钮绑定事件
  8. sigaction函数使用实例
  9. php用get方式传json数据 变成null了
  10. RAC的搭建(一)--安装环境准备