图像处理降噪效果_图像处理降噪 - CSDN
  • 图像降噪算法总结

    千次阅读 2019-02-26 14:43:11
    图像降噪,是最简单也是最基础的图像处理逆问题(inverse problem)。 大多数情况下,图像降噪都是ill-posed的问题。因为通过有噪音的观察,总是无法逆向求得唯一正确的干净图片。就好像让你解一个超越方程一样,不...

                                         图像降噪算法总结

    图像降噪,是最简单也是最基础的图像处理逆问题(inverse problem)。

    大多数情况下,图像降噪都是ill-posed的问题。因为通过有噪音的观察,总是无法逆向求得唯一正确的干净图片。就好像让你解一个超越方程一样,不借助其他额外的条件信息,是没有唯一解的。

    降噪问题(这里只讨论additive noise),用最简单的数学语言一句话就可以描述清楚:

    y = x + e

    y是你观察到的带噪音的图像,e是噪音,x是干净无噪音的图像。只已知y,外加e的概率分布,降噪问题需要你去寻找最接近真实值的x。

    说起来降噪问题如此简单明了,但自从信号处理开宗立派起,研究人员一直在孜孜不倦地提出各种降噪算法。我最早也没搞懂,大家何必纠结于这么简单的问题,而不去考虑更复杂,更贴近实际的花哨应用?

    然而世间万物的规律,万变不离其中:不管多复杂问题,其本质往往都有简单的起源。而看似简单的问题,往往却是高手一身修行的追求:就好像考察一个书法家功力,看他写一个永字就好;看一个川菜厨师功力,看他做一道开水白菜就好。

    科研之道和其他道也类似,简单的任务见到的是这个approach的潜力:这仅仅是起点,而不是终点。一个好的科研者应该要着眼于起点,追求问题的本源,然后拓展到未来,此为道。只追求花哨的应用,拼凑堆叠,舍本求末甚至本末倒置,只能为术。

    好吧,扯远了。我就是想说,图像降噪问题,最简单也最困难。

    那么要怎么解好这个逆问题呢?

    降噪的本质,是要从观测值中分离噪音,保留图像。算法的关键,是要掌握并借助于图像本身独特的性质和结构。具体用什么性质,这个流派就多了,我在这里就先提供一个不完全总结,关于近期的一些好的图像降噪算法。

    根据算法利用了什么图像性质,或者用到的手段,我大概把各种算法分成如下几类:

    1. 滤波类
    2. 稀疏表达类
    3. 外部先验
    4. 聚类低秩
    5. 深度学习

     

    我根据我的了解,对于每一个类比总结了一个常见算法列表:wenbihan/reproducible-image-denoising-state-of-the-art

    入选的算法要满足:1.近期(05年以后)提出的算法,2.有可复现的代码提供,3.可以得到很好,或者接近state-of-the-art的效果。

    下面对于这几类算法的一些简略地解释:

    滤波类:相对比较传统的一类算法,通过设计滤波器对图像进行处理。特点是速度往往比较快,很多卷积滤波可以借助快速傅里叶变化来加速。近期的一些算法例如BM3D也结合了一些block matching来利用图片的self-similarity,达到了很棒的效果。

     

    稀疏表达类:自然图片之所以看起来不同于随机噪音/人造结构,是因为大家发现他们总会在某一个模型(synthesis model或者analysis model)下存在稀疏表达。而我们想排除的噪音往往无法被稀疏化。基于这个判别式模型(discriminative model),用稀疏性来约束自然图像,在很多逆问题里取得了拔群的效果。

    https://github.com/wenbihan/reproducible-image-denoising-state-of-the-art

    外部先验(external prior):如果从有噪音的图片本身无法找到规律,我们也可以借助其他类似但又没有噪音的图片,来总结图片具有的固有属性。这一类方法利用的外部图片来创造先验条件,然后用于约束需要预测的图片。最有代表性的工作,就是混合高斯模型(Gaussian Mixture Model)。严格来说,基于深度学习的算法也可以归于这个类。

     

    聚类低秩(Low-Rankness):除了可稀疏性,低秩性也是自然图片常见的一个特性。数学上,可稀疏表达的数据可以被认为是在Union of low-dimensional subspaces;而低秩数据则是直接存在于一个Low-dimensional subspace。这个更严格的限制往往也可以取得很好的降噪效果。

     

    深度学习(Deep Learning):这类可以归于外部先验的子类,但由于近期大热,我单独拿出来说说。如果说解决逆问题的关键,是寻找一个好的图像约束器(regularizer),那么我们为什么不用一个最好的约束器?深度学习方法的精髓,就在于通过大量的数据,学习得到一个高复杂度(多层网络结构)的图片约束器,从而将学习外部先验条件这一途径推到极限。近期的很多这类工作,都是沿着这一思路,取得了非常逆天的效果。

     

    对于我总结的每一个类别,我都在创建的【github page】里面列举了一些推荐的工作,并且附带其可复现的代码实现。(你还在为写paper跑实验,不知道和哪些baseline做对比吗?还在为读了paper不知道怎么实现算法而苦恼吗?还在不知道怎么上手吗?请猛戳这里,-_-||)

     

    【转载】:https://zhuanlan.zhihu.com/p/32502816

    展开全文
  • 图像处理实例--图像去噪

    万次阅读 2017-08-24 16:12:58
    常见的噪声种类数字图像在获取、传输的过程中都可能会受到噪声的污染,常见的噪声主要有高斯噪声和椒盐噪声。其中,高斯噪声主要是由摄像机传感器元器件内部产生的,椒盐噪声主要是由图像切割所产生的黑白相间的亮暗...

    常见的噪声种类

    数字图像在获取、传输的过程中都可能会受到噪声的污染,常见的噪声主要有高斯噪声和椒盐噪声。其中,高斯噪声主要是由摄像机传感器元器件内部产生的,椒盐噪声主要是由图像切割所产生的黑白相间的亮暗点噪声,“椒”表示黑色噪声,“盐”表示白色噪声。

    f=imread('3.jpg');
    g=imnoise(f,'salt & pepper',0.06);
    h=imnoise(f,'gaussian',0.05,0.05);
    subplot(1, 3, 1), imshow(f), title('原图');
    subplot(1, 3, 2), imshow(g), title('椒盐');
    subplot(1, 3, 3), imshow(h), title('高斯');

    这里写图片描述

    去噪方法

    空域

    空域图像去噪用的有均值滤波算法和中值滤波算法,主要是对图像像素做邻域的运算来达到去噪结果。

    g1 = imfilter(g, fspecial('average'));
    g2 = medfilt2(g, [5 5]);
    subplot(2, 2, 3), imshow(g1), title('均值滤波');
    subplot(2, 2, 4), imshow(g2), title('中值滤波');

    这里写图片描述

    形态学去噪

    数学形态学图像处理通过采用具有一定形态的结构元素去度量和提取图像中的对应形状,借助于集合理论来达到对图像进行分析和识别的目标,该算法具有以下特征。

    1、图像信息的保持

    在图像形态学处理中,可以通过已有目标的几何特征信息来选择基于形态学的形态滤波器,这样在进行处理时既可以有效地进行滤波,又可以保持图像中的原有信息。

    2、图像边缘的提取

    基于数学形态学的理论进行处理,可以在一定程度上避免噪声的干扰,相对于微分算子的技术而言具有较高的稳定性。形态学技术提取的边缘也比较光滑,更能体现细节信息。

    3、图像骨架的提取

    基于数学形态学进行骨架提取,可以充分利用集合运算的优点,避免出现大量的断点,骨架也较为连续。

    4、图像处理的效率

    基于数学形态学进行图像处理,可以方便地应用并行处理的技术来进行集合运算,具有效率高、易于硬件实现的特点。

    权重自适应的多结构形态学去噪

    在数学形态学图像去噪的过程中,通过适当地选取结构元素的形状和维数可以提高滤波去噪的效果。在多结构元素的级联过程中,需要考虑到结构元素的形状和维数。数字图像在进行数学形态滤波去噪时,根据噪声特点可以尝试采用维数由小到大的结构元素来进行处理,进而达到滤除不同噪声的目的。采用数学形态学的多结构元素,可以更多地保持数字图像的几何特征。因此,选择构建串联滤波器来进行图像滤波,就是将同一形状的结构元素按维数从小到大的顺序来对图像进行滤波。

    >> i=imread('food.jpg');
    >> i=rgb2gray(i);
    >> %添加噪声
    >> ig=imnoise(i,'poisson');
    >> %获取算子
    >> s=GetStrelList();
    >> %串联去噪
    >> edit erodeList
    >> e=erodeList(ig,s);
    >> edit getRateList
    >> %计算权重
    >> f=getRateList(ig,e);
    >> edit getRemoveResult
    >> %并联
    >> igo=getRemoveResult(f,e);
    >> %显示结果
    >> subplot(1,2,1),imshow(f);
    >> subplot(1,2,1),imshow(i);
    >> title('原图像');
    >> subplot(1,2,2),imshow(ig),title('噪声图像');
    >> figure;
    >> subplot(2,2,1),imshow(e.eroded_co12);title('串联1处理结果');
    >> subplot(2,2,2),imshow(e.eroded_co22);title('串联2处理结果');
    >> subplot(2,2,3),imshow(e.eroded_co32);title('串联3处理结果');
    >> subplot(2,2,4),imshow(e.eroded_co42);title('串联4处理结果');
    >> figure;
    >> subplot(1,2,1),imshow(ig),title('噪声图像');
    >> subplot(1,2,2),imshow(igo),title('并联去噪图像');

    这里写图片描述

    这里写图片描述

    这里写图片描述

    展开全文
  • 图像降噪

    千次阅读 2018-11-17 15:06:08
    图像降噪,也称图像去噪(Image denoising)。 滤波是图像降噪的一种方法,但降噪不是滤波的唯一应用场合。 文章目录图像噪声局部去噪非局部去噪去噪效果对比 图像噪声 原图 常见图像噪声有以下四种: ...

    图像降噪,也称图像去噪(Image denoising)。
    滤波是图像降噪的一种方法,但降噪不是滤波的唯一应用场合。

    图像噪声

    原图

    常见图像噪声有以下四种:

    高斯噪声 泊松噪声
    乘性噪声 椒盐噪声

    高斯噪声

    高斯噪声,指概率密度函数服从高斯分布(即正态分布)的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。

    泊松噪声

    泊松噪声,指符合泊松分布的噪声模型。泊松分布适合描述单位时间内随机事件发生次数的概率分布。

    乘性噪声

    乘性噪声一般由信道不理想引起,它们与信号的关系是相乘的,信号在它在,信号不在时他也就不在了。

    椒盐噪声

    椒盐噪声,又称脉冲噪声,它随机改变一些像素值,是由图像传感器、传输信道、解码处理等产生的黑白相间的亮暗点噪声。

    局部去噪

    OpenCV中有多个可以降低图像噪声、对图像实现平滑滤波的函数,如

    • blur:对各种噪声都有一定的抑制作用

    • GaussianBlur:对随机噪声比较好,对椒盐噪声效果不好

    • medianBlur:对椒盐噪声效果比较好

    具体可参见:图像滤波

    非局部去噪

    在滤波技术里,通常取像素周围的一小部分邻域进行平滑滤波。对于非局部去噪技术,OpenCV提供了四种变体:

    使用单个灰度图像

    函数原型:

    def fastNlMeansDenoising(src, dst=None, h=None, templateWindowSize=None, searchWindowSize=None)
    

    使用单个彩色图像

    函数原型:

    def fastNlMeansDenoisingColored(src, dst=None, h=None, hColor=None, templateWindowSize=None, searchWindowSize=None)
    

    通用参数:

    • h:值越大表示去噪声力度越大,同时细节丢失也越多,默认值为10

    • hColor:与h相同,但仅适用于彩色图像,大小通常与h相同

    • templateWindowSize:相似性权重计算窗口大小,一般为5~15之间的奇数

    • searchWindowSize:搜索窗口,大小可以设置为相似性计算窗口大小的3~5倍的奇数

    使用在短时间内捕获的图像序列(灰度图像)

    函数原型:

    def fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, dst=None, h=None, templateWindowSize=None, searchWindowSize=None) 
    

    使用在短时间内捕获的图像序列(彩色图像)

    函数原型:

    def fastNlMeansDenoisingColoredMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, dst=None, h=None, hColor=None, templateWindowSize=None, searchWindowSize=None)
    

    通用参数:

    • srcImgs:带噪点的图像帧的列表

    • imgToDenoiseIndex: 指定需要降噪的那一帧对应的索引。

    • temporalWindowSize:指定多少个周围的帧用来去噪,奇数。(如,传入5帧图像列表,imgToDenoiseIndex = 2, temporalWindowSize = 5,即使用第0~4帧,来给第2帧去噪)

    去噪效果对比

    import cv2
    
    def get_srcImgs():
    	imgs = []
    	imgs_gray = []
    	videoCapture = cv2.VideoCapture("./test.mp4")
    	videoCapture.set(cv2.CAP_PROP_POS_FRAMES, 90) 
    	for i in range(3):
    		success, img= videoCapture.read()
    		gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    		imgs.append(img)
    		imgs_gray.append(gray) 
    	return imgs, imgs_gray
    
    def show_GaussianBlur(img):
    	gaussian = cv2.GaussianBlur(img, (5, 5), 0)
    	gaussian_Canny = cv2.Canny(gaussian, 42, 42 * 3, apertureSize=3)
    	cv2.imshow('gaussian kSize=5*5', gaussian)
    	cv2.imshow('gaussian_Canny', gaussian_Canny)
    
    def denoise(x):
    	h = cv2.getTrackbarPos('h', 'denoise demo')
    	tempSize = cv2.getTrackbarPos('size', 'denoise demo')
    	searchSize = tempSize * 3
    
    	if tempSize % 2 == 0:
    		return
    
    	denoise_color = cv2.fastNlMeansDenoisingColored(img, None, h, h, tempSize, searchSize)
    	cv2.imshow('denoise color', denoise_color)
    
    	denoise = cv2.fastNlMeansDenoising(gray, None, h, tempSize, searchSize)
    	denoise_Canny = cv2.Canny(denoise, 42, 42 * 3, apertureSize=3)
    	cv2.imshow('denoise', denoise)
    	cv2.imshow('denoise_Canny', denoise_Canny)
    
    	denoise_color_Multi = cv2.fastNlMeansDenoisingColoredMulti(imgs, 1, 3, None, h, h, tempSize, searchSize)
    	cv2.imshow('denoise_color_Multi', denoise_color_Multi)
    
    	denoise_Multi = cv2.fastNlMeansDenoisingMulti(imgs_gray, 1, 3, None, h, tempSize, searchSize)
    	denoise_Multi_Canny = cv2.Canny(denoise_Multi, 42, 42 * 3, apertureSize=3)
    	cv2.imshow('denoise_Multi', denoise_Multi)
    	cv2.imshow('denoise_Multi_Canny', denoise_Multi_Canny)
    
    h = 9
    size = 9
    
    imgs, imgs_gray = get_srcImgs()
    img = cv2.imread("./frame_91.png")
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    cv2.namedWindow('denoise demo')
    cv2.imshow('denoise demo', img)
    cv2.createTrackbar('h', 'denoise demo', h, 30, denoise)
    cv2.createTrackbar('size', 'denoise demo', size, 15, denoise)
    
    show_GaussianBlur(img)
    
    denoise(0)
    if cv2.waitKey(0) == 27:
    	cv2.destroyAllWindows()
    
    展开全文
  • 数字图像处理(六)图像降噪处理

    千次阅读 2020-03-11 10:51:01
    一幅图像在实际应用中可能存在各种各样的噪声,这些噪声可能在传输中产生,也可能在量化等处理中产生。 根据噪声和信号的关系可将其分为三种形式:(f(x,y)表示给定原始图像,g(x,y)表示图像信号,n(x,y)表示噪声。) 1)加...

    1.噪声

    1.1噪声分类
    噪声是图像干扰的重要原因。一幅图像在实际应用中可能存在各种各样的噪声,这些噪声可能在传输中产生,也可能在量化等处理中产生。
    根据噪声和信号的关系可将其分为三种形式:(f(x,y)表示给定原始图像,g(x,y)表示图像信号,n(x,y)表示噪声。)
    1)加性噪声,此类噪声与输入图像信号无关,含噪图像可表示为f(x,y)=g(x,y)+ n(x,y),信道噪声及光导摄像管的摄像机扫描图像时产生的噪声就属这类噪声。
    2)乘性噪声,此类噪声 与图像信号有关,含噪图像可表示为f(x,y)=g(x,y)+ n(x,y)g(x,y),飞点扫描器扛描图像时的噪声,电视图像中的相干噪声,胶片中的颗粒噪声就属于此类噪声。
    3)量化噪声,此类噪声 与输入图像信号无关,是量化过程存在量化误差,再反映到接收端而产生。
    1.2椒盐噪声
    椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声往往由图像切割弓|起。去除脉冲干扰及椒盐噪声最常用的算法是中值滤波。
    路面图像属于结构光图像,使用区域分割技术中的阈值分割法消除白噪声及部分椒盐噪声,而不能使用中值滤波对白噪声及椒盐噪声进行滤波,因为滤波模板在图像中漫游时会改变光条中像素的真实灰度分布,给随后的重心法细化过程带来负面影响。
    大量的实验研究发现,由摄像机拍摄得到的图像受离散的脉冲、椒盐噪声和零均值的高斯噪声的影响较严重。噪声给图像处理带来很多困难,对图像分割、特征提取、图像识别等具有直接影响。因此,实时采集的图像需进行滤波处理。消除图像中的噪声成份叫做图像的平滑化或滤波操作。
    噪声是指两种噪声,一 种是盐噪声( salt noise ) ,另一种是胡椒噪声( pepper noise )。盐=白色,椒=黑色。前者是高灰度噪声,后者属于低灰度噪声。椒盐噪声同时出现,呈现在图像上就是黑白杂点。
    噪声类型是 ‘salt & pepper’ 一定注意空格的位置 这里比较严格。当噪声类型是’salt & pepper’的时候,第三个参数的意思是噪声密度,比如0.1,那么总像素个数的10%为黑白点,当然是黑点还是白点都是随机的。
    在这里插入图片描述

    I=imread('下载.jpg');
    G=rgb2gray(I);
    J = imnoise(G,'salt & pepper',0.05);
    J1= imnoise(G,'salt & pepper',0.05);
    J2= imnoise(G,'salt & pepper',0.05);
    [M,N]=size(J);
    for i=1:M
    for j=1:N
    if(J1(i,j)==255)
    J1(i,j)=0;
    else
    J1(i,j)=J1(i,j);
    end
    end
    end
    for i=1:M
    for j=1:N
    if(J2(i,j)==0)
    J2(i,j)=255;
    else
    J2(i,j)=J2(i,j);
    end
    end
    end
    A= meshgrid(1:3, 1:3);
    A1= meshgrid(1:5, 1:5);
    A2= meshgrid(1:8, 1:8);
    figure(1)
    subplot(221);imshow(G);title('原始灰度图像');
    subplot(222);imshow(J);title('添加椒盐噪声图像');
    subplot(223);imshow(J1);title('添加胡椒噪声图像');
    subplot(224);imshow(J2);title('添加盐噪声图像');
    

    在这里插入图片描述

    t=imread('下载.jpg');
    subplot(1,4,1),imshow(t),title('原图');
    t1=imnoise(t,'salt & pepper',0.1);
    subplot(1,4,2),imshow(t1),title('加入噪声密度:0.1的椒盐噪声');
    t2=imnoise(t,'salt & pepper',0.2);
    subplot(1,4,3),imshow(t2),title('加入噪声密度:0.2的椒盐噪声');
    t3=imnoise(t,'salt & pepper',0.3);
    subplot(1,4,4),imshow(t3),title('加入噪声密度:0.3的椒盐噪声');
    

    3.图像降噪处理方法

    3.1中值滤波
    中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。但在条纹中心分析方法中作用不大。
    实现方法
    (1)通过从图像中的某个采样窗口取出奇数个数据进行排序;
    (2)用排序后的中值取代要处理的数据即可。
    实际应用
    中值滤波法对消除椒盐噪声非常有效,在光学测量条纹图象的相位分析处理方法中有特殊作用,但在条纹中心分析方法中作用不大。中值滤波在图像处理中,常用于保护边缘信息,是经典的平滑噪声的方法。
    中值滤波器将受干扰的像素值替换为模板区域的中值,同时它可以保护图像尖锐的边缘,且比相同尺寸的线性平滑滤波器引起的模糊更少,消除脉冲噪声的效果较好。
    在这里插入图片描述

    I=imread('下载.jpg');
    G=rgb2gray(I);
    J = imnoise(G,'salt & pepper',0.05);subplot(221),imshow(I);title('原图像');
    subplot(222),imshow(J);title('添加椒盐噪声图像');
    k1=medfilt2(J);
     subplot(223),imshow(k1);title('3*3模板中值滤波');
    

    3.2最大值与最小值滤波
    最大值滤波,即以模板内进行有序排列后最大像素值代替中心像素值,可以去除图像中的暗斑,使亮斑增大。
    最小值滤波,即以模板内进行有序排列后最小像素值代替中心像素值,可以去除图像中的亮斑,使暗斑增大。
    利用最大值滤波器对胡椒噪声进行处理,成功消除了胡椒噪声,但应注意到,它同时也从黑色物体的边缘移走了一些黑色像素。
    利用最小值滤波器对盐噪声进行处理,在这种情况下,最小值滤波器比最大值滤波器效果更好,但它也从亮物体边缘移走了一些白色像素,使亮物体变小,暗物体变大,这是因为围绕着这些物体的白点被设置成了暗灰度级。

    %%%%%%------------------图像复原之空间滤波---------------------------------
    %读入图像,并转换为double型
    I=imread('下载.jpg');G=rgb2gray(I);
    J = imnoise(G,'salt & pepper',0.05);subplot(221),imshow(I);title('原图像');
    subplot(222),imshow(J);title('添加椒盐噪声图像');
    I_D=im2double(J);
    [MM,NN]=size(I_D);
     
    %%%%%----------------------2、顺序统计滤波器-------------------------------
    %%======================= 2.2 最大值或最小值滤波器=========================
    %最大值滤波适合处理带有“胡椒噪声”的图像
    %最小值滤波器适合处理带有“盐”噪声的图像
    %定义子窗口的尺寸
    m=3;
    n=3;
    %确定要扩展的行列数
    len_m=floor(m/2);
    len_n=floor(n/2);
    %将原始图像进行扩展,这里采用了镜像扩展,以进行图像边缘计算
    I_D_pad=padarray(I_D,[len_m,len_n],'symmetric');
    %获得扩展后的图像尺寸
    [M,N]=size(I_D_pad);
    J_Max=zeros(MM,NN);
    %J_Min=zeros(MM,NN);
    %逐点计算子窗口的最大/最小值
    for i=1+len_m:M-len_m
        for j=1+len_n:N-len_n
            %从扩展图像中取出子图像
            Block=I_D_pad(i-len_m:i+len_m,j-len_n:j+len_n);
            %最大值滤波        
            J_Max(i-len_m,j-len_n)=max(max(Block));
            %最小值滤波        
             J_Min(i-len_m,j-len_n)=min(min(Block));        
        end
    end
    subplot(223),imshow(J_Max);
    title('最大值滤波器');
    subplot(224),imshow(J_Min);
    title('最小值滤波器')
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    利用最大值滤波器对胡椒噪声进行处理,成功消除了胡椒噪声,但应注意到,它同时也从黑色物体的边缘移走了一些黑色像素。
    利用最小值滤波器对盐噪声进行处理,在这种情况下,最小值滤波器比最大值滤波器效果更好,但它也从亮物体边缘移走了一些白色像素,使亮物体变小,暗物体变大,这是因为围绕着这些物体的白点被设置成了暗灰度级。
    3.3均值滤波
    均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围n个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。
    不足之处
    均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在 图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。

    I=imread('下载.jpg');%读取图像
    I = rgb2gray(I);%灰度处理
    J=imnoise(I,'salt & pepper',0.2);%加入椒盐噪声,密度为0.2
    subplot(2,3,1);imshow(I);
    title('原始图像');
    subplot(2,3,2); imshow(J);
    title('加入椒盐噪声之后的图像');
    %采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波
    K1= medfilt2(J);%采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波
    %采用MATLAB中的函数filter2对受噪声干扰的图像进行中值滤波
    K2=filter2(fspecial('average',3),J)/255; %模板尺寸为3
    K3=filter2(fspecial('average',5),J)/255;% 模板尺寸为5
    K4= filter2(fspecial('average',9),J)/255; %模板尺寸为9
    subplot(2,3,3);imshow(K1);
    title('中值滤波');
    subplot(2,3,4); imshow(K2);
    title('均值滤波,尺寸3');
    subplot(2,3,5);imshow(K3);
    title('均值滤波,尺寸5');
    subplot(2,3,6);imshow(K4);
    title('均值滤波,尺寸9'); 
    

    在这里插入图片描述
    均值滤波器简单的平滑了一幅图像的的局部变化,在模糊了图像的同时减少了噪声,但不能完全的消除噪声。

    展开全文
  • 数字图像在数字化和成像过程中会受到成像设备或外界环境的影响,受到干扰产生的图像叫做噪声图像。 按照噪声的引入方式分类,可以将噪声分成加性噪声和乘法性噪声。加性噪声的幅度与信号的幅度无关,是叠加在图像上...
  • Opencv图像处理之滤波降噪

    万次阅读 2017-11-29 15:41:33
    CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅...
  • 图像预处理算法的好坏直接关系到后续图像处理效果,如图像分割、目标识别、边缘提取等,为了获取高质量的数字图像,很多时候都需要对图像进行降噪处理,尽可能的保持原始信息完整性(即主要特征)的同时,又能够...
  • 图像预处理算法的好坏直接关系到后续图像处理效果,如图像分割、目标识别、边缘提取等,为了获取高质量的数字图像,很多时候都需要对图像进行降噪处理,尽可能的保持原始信息完整性(即主要特征)的同时,又能够...
  • 图像去噪是信号处理的一个经典问题,传统的去噪方法多采用平均或线性法法进行,最常用到的就是维纳滤波,但是他的降噪效果并不是很明显。小波分析法开辟了非线性降噪的先河,小波能够降噪得益于小波变换的以下特点:...
  • 在原图上添加椒盐噪声,运用中值滤波、最大值滤波和最小值滤波算法对图像降噪,并比较处理前后、不同模板均值滤波算法处理效果。一、基本原理1.1 噪声的产生及分类 噪声是图像干扰的重要原因。一幅图像在实际应用...
  • 利用opencv和vs2015配置环境对多张图像进行椒盐噪声的降噪处理
  • 图像降噪算法——图像噪声模型图像降噪算法——图像噪声模型1. 图像噪声建模2. C++实现 图像降噪算法——图像噪声模型 1. 图像噪声建模 首先,我们要区分图像传感器噪声和图像噪声,图像传感器噪声我在博客图像...
  • python编写的ROF图像降噪程序,代码全面,亲测可行,降噪效果优与一般的图像降噪方法,对图像处理研究者有一定帮助。
  • 图像降噪的一些总结

    千次阅读 2018-11-13 17:34:16
    图像降噪,是最简单也是最基础的图像处理逆问题(inverse problem)。   大多数情况下,图像降噪都是ill-posed的问题。因为通过有噪音的观察,总是无法逆向求得唯一正确的干净图片。就好像让你解一个超越方程一样...
  • 自适应图像降噪滤波器的设计与实现

    万次阅读 多人点赞 2020-04-17 02:31:19
    几乎所有真正有价值的图像降噪方法都在试图让程序可以...目前这样的方法已有很多,例如比较有名的双边滤波、各向异性扩散滤波和基于TV的去噪方法等等,而且它们在医学图像处理或者美颜嫩肤算法等领域中都有重要应用
  • 数字图像处理:7.图像去噪

    千次阅读 2013-08-03 17:15:45
    一,背景   随着各种数字仪器和数码产品的...并且图像预处理算法的好坏又直接关系到后续图像处理效果,如图像分割、目标识别、边缘提取等,所以为了获取高质量数字图像,很有必要对图像进行降噪处理,尽可能的保
  • 图像处理 降噪 增强

    千次阅读 2018-12-24 14:49:42
    针对模糊图像的处理,...第一种 自我激发型 基于图像处理的方法,如图像增强和图像复原,以及曾经很火的超分辨率算法。都是在不增加额外信息的前提下的实现方式。   1. 图像增强 图像增强是...
  • 如何学好图像处理——从小白到大神?

    万次阅读 多人点赞 2020-04-17 02:28:38
    什么是数字图像处理?历史、以及它所研究的内容。 说起图像处理,你会想到什么?你是否真的了解这个领域所研究的内容。纵向来说,数字图像处理研究的历史相当悠久;横向来说,数字图像处理研究的话题相当广泛。 ...
  • 图像预处理算法的好坏直接关系到后续图像处理效果,如图像分割、目标识别、边缘提取等,为了获取高质量的数字图像,很多时候都需要对图像进行降噪处理,尽可能的保持原始信息完整性(即主要特征)的同时,又能够...
  • · 本系列python版本:python3.5.4 · 本系列opencv-python版本:opencv-python3.4.2.17 · 本系列使用的开发环境是jupyter notebook,是一个python的交互式开发环境,测试十分方便,并集成了vim操作,安装...
1 2 3 4 5 ... 20
收藏数 5,026
精华内容 2,010
关键字:

图像处理降噪效果