图像平滑方法综述与MATLAB实现之欧阳家百创编

合集下载

图像平滑实验

图像平滑实验

图像平滑实验一、实验目的 1.熟练掌握空域滤波中常用平滑滤波器的原理2.理解邻域平均法、中值滤波法平滑降噪达到图像增强的原理3.利用MA TLAB 编程实现图像平滑处理二、实验原理平滑滤波是一种实用的图像处理技术,能减弱或消除图像中的高频分量,不影响低频分量。

因为高频率分量主要对应图像中的区域边缘等灰度值变化较快的部分,平滑滤波将这些分量滤去可减少局部灰度起伏,使图像变得比较平滑。

实际应用中,平滑滤波还可用于消除突发噪声,或者在提取较大目标前去除过小的细节或将目标内的小间断连接起来。

1. 邻域平均法用窗口像素的平均值取代中心像素原来的灰度值。

邻域的选取通常有4-邻域和8-邻域。

∑∈=A y x y x f L j i g ),(),(1),(2. 中值滤波 与加权平均方式的平滑滤波不同,中值滤波是抑制噪声的非线性处理方法。

对于给定的n 个数值{a 1,a 2,…,a n },将它们按大小有序排列。

当n 为奇数时,位于中间位置的那个数值称为这n 各数值的中值。

当n 为偶数时,位于中间位置的两个数值的平均值称为这n 个数值的中值。

中值滤波,就是图像中滤波后的某像素输出值等于该像素邻域中各像素灰度的中值。

三、实验内容与步骤1. 对lena.bmp 图像添加零均值“高斯”噪声,用3×3或9×9滑动平均模板进行降噪处理,观察平均降噪图像的效果。

1.1 对d:\mape_file\lena.bmp 图像添加零均值高斯噪声,观察噪声的影响参考代码如下:I=imread('d:\mape_file\lena.bmp');J=imnoise(I,'gaussian',0,0.02);subplot(1,2,1);imshow(I);title('原图');subplot(1,2,2);imshow(J);title('加噪处理后的图');尝试加入其它噪声,分析不同噪声的影响结果和特点。

图像平滑的MATLAB实现

图像平滑的MATLAB实现

图像平滑的MATLAB实现摘要:图像平滑技术用于平滑图像的噪声,本文对均值滤波、中值滤波、维纳滤波等三种平滑滤波器进行理论学习,并通过MATLAB对滤波效果进行仿真。

关键词:图像平滑均值滤波中值滤波维纳滤波实际获得的图像一般都因受到某种干扰而含有噪声。

引起噪声的原因有敏感元器件的内部噪声、照相底片上感光材料的颗粒、传输通道的干扰及量化噪声等。

噪声产生的原因决定了噪声的分布特性及它和图像信号的关系。

根据噪声服从的分布,可以分为高斯噪声、泊松噪声和颗粒噪声等。

平滑技术用于平滑图像的噪声,平滑噪声可以在空间域中进行,基本方法是求像素灰度的平均值或中值。

为了既平滑噪声又保护图像信号,也有一些改进的技术,比如在频域中运用低通滤波器。

MATLAB图像处理工具箱提供了模拟噪声生成的函数imnoise和去除噪声的方法。

函数imnoise可以对图像添加一些典型的噪声。

由于噪声的随机性,它们对某一像点的影响使其灰度和邻点的灰度显著不同,因此可以利用这种不同来消除噪声。

去除噪声的方法有线性滤波、中值滤波、自适应滤波。

本文就针对上述三种平滑滤波进行MATLAB仿真。

1 图像平滑的MATLAB实现1.1 均值滤波[1]1.1.1理论基础邻域平均法是空间域平滑噪声技术,其均值滤波器对于扫描得到的图像中的颗粒噪声非常适用,理论依据如下:对于给定的图像f(i,j)中的每个像点(m,n),取其邻域S。

设S含有M个像素,取其平均值作为处理后所得图像像点(m,n)处的灰度。

用一像素邻域内各像素灰度平均值来代替该像素原来的灰度,即是邻域平均技术。

邻域S的形状和大小根据图像特点确定。

一般取的形状是正方形、矩形及十字形等,S的形状和大小可以在全图处理过程中保持不变,也可根据图像的局部统计特性而变化,点(m,n)一般位于S的中心。

如S为3×3邻域,点(m,n)位于S中心,则:假设噪声n是加性噪声,在空间各点互不相关,且期望为0,方差δ2,g是未受污染的图像,含有噪声的图像f经过邻域平均后为由上式可知,经邻域平均后,噪声的均值不变,方差,即噪声方差变小,说明噪声强度减弱了,即抑制了噪声。

利用Matlab进行图像处理的常用方法

利用Matlab进行图像处理的常用方法

利用Matlab进行图像处理的常用方法概述:图像处理是数字信号处理的一个重要分支,也是计算机视觉领域的核心内容之一。

随着计算机技术的不断发展,利用Matlab进行图像处理的方法变得越来越重要。

本文将介绍一些常用的Matlab图像处理方法,包括图像的读取与显示、图像的预处理、图像的滤波处理、基本的图像增强方法以及图像的分割与检测等。

一、图像的读取与显示在Matlab中,可以使用imread函数直接读取图像。

通过指定图像的路径,我们可以将图像读取为一个矩阵,并且可以选择性地将其转换为灰度图像或彩色图像。

对于灰度图像,可以使用imshow函数将其显示出来,也可以使用imwrite函数将其保存为指定格式的图像文件。

对于彩色图像,可以使用imshow函数直接显示,也可以使用imwrite函数保存为指定格式的图像文件。

此外,还可以使用impixel函数获取图像中指定像素点的RGB值。

二、图像的预处理图像的预处理是指在进一步处理之前对图像进行调整和修复以消除图像中的噪声和不良的影响。

常用的图像预处理方法包括图像的平滑处理、图像增强和图像修复等。

1. 图像平滑处理:常用的图像平滑方法有均值滤波、中值滤波和高斯滤波等。

其中,均值滤波将每个像素点的值替换为其周围像素点的平均值,中值滤波将每个像素点的值替换为其周围像素点的中值,高斯滤波则通过加权平均的方式平滑图像。

2. 图像增强:图像增强是指通过一些方法提高图像的质量和信息内容。

常用的图像增强方法包括直方图均衡化、对比度拉伸和锐化等。

直方图均衡化通过调整图像的灰度分布,以提高图像的对比度和细节。

对比度拉伸是通过将图像的像素值线性拉伸到整个灰度范围内,以增强图像的对比度。

锐化则是通过增强图像的边缘和细节,使图像更加清晰。

三、图像的滤波处理图像的滤波处理是指通过对图像进行一系列滤波操作,来提取图像中的特征和信息。

常用的图像滤波方法包括模板滤波、频域滤波和小波变换等。

1. 模板滤波:模板滤波是基于局部像素邻域的滤波方法,通过定义一个滤波模板,将其与图像进行卷积操作,从而实现图像的滤波。

图像平滑的matlab实现论文概要

图像平滑的matlab实现论文概要

图像平滑的Matlab实现20101602310035 黄汉杰摘要随着图像处理领域的迅速发展,图像平滑作为图像处理中的重要环节,也逐渐受到人们的关注。

图像平滑的目的主要是消除噪声。

图像平滑方法按空间域和频率域的分类及各种方法的特点,图像平滑是对图像作低通滤波,可在空间域或频率域实现。

空间域图像平滑方法主要用均值滤波、中值滤波等;频率域图像平滑常用的低通滤波器有理想低通滤波器、布特沃斯低通滤波器、低通指数滤波器、低通梯形滤波器等。

关键词:图像平滑;噪声;空间域低通滤波;频域低通滤波引言:(1)在图像的获取和传输过程中原始图像会受到各种噪声的干扰,使图像质量下降。

为了抑制噪声、改善图像质量,要对图像进行平滑处理。

抑制或消除这些噪声而改善图像质量的过程称为图像的平滑。

图像平滑的目的是为了消除噪声。

噪声消除的方法又可以分为空间域或频率域,亦可以分为全局处理或局部处理,亦可以按线性平滑、非线性平滑和自适应平滑来区别。

图像的平滑是一种实用的数字图像处理技术,一个较好的平滑处理方法应该既能消除图像噪声,又不使图像边缘轮廓和线条变模糊,这就是研究数字图像平滑处理要追求的目标。

一般情况下,减少噪声的方法可以在空间域或频率域进行处理,主要有邻域平均法、中值滤波法、低通滤波法等,邻域平均法即通过提高信噪比,取得较好的平滑效果;空间域低通滤波采用低通滤波的方法去除噪声;以及频域低通滤波法通过除去其高频分量就能去掉噪声,从而使图像得到平滑。

(2)本设计将对图像平滑处理的两大方面即空间域和频率域,以及两种处理方向里的几种处理方法进行介绍,并对一些常用的简单平滑算法进行分析。

(3)图像平滑主要是为了消除被污染图像中的噪声,这是遥感图像处理研究的最基本内容之一,被广泛应用于图像显示、传输、分析、动画制作、媒体合成等多个方面。

该技术是出于人类视觉系统的生理接受特点而设计的一种改善图像质量的方法。

处理对象是在图像生成、传输、处理、显示等过程中受到多种因素扰动形成的加噪图像。

图像处理与matlab实例之图像平滑(一)

图像处理与matlab实例之图像平滑(一)

图像处理与matlab实例之图像平滑(⼀) ⼀、何为图像噪声?噪声是妨碍⼈的感觉器官所接受信源信息理解的因素,是不可预测只能⽤概率统计⽅法认识的随机误差。

举个例⼦: 从这个图中,我们可以观察到噪声的特点:1>位置随机 2>⼤⼩不规则。

我们将这种噪声称为随机噪声(random noise),这是⼀种⾮常常见的噪声类型。

⼆、噪声的类型 噪声可以借⽤随机过程以及概率密度函数(Probability Density Function,PDF)来描述,通常可采⽤其数组特征,即均值,⽅差,相关函数等。

按照概率密度函数分为⾼斯噪声、瑞利噪声、伽马噪声、指数分布噪声、均匀分布噪声、脉冲噪声、泊松噪声等。

有的噪声与图像信号的强度不相关,如图像传输过程引⼊的信道噪声、摄像机扫描噪声等,这种噪声称为加性噪声(additive noise)。

常见的加性噪声按照概率密度函数特征分为短拖尾加性噪声(如均匀分布噪声)、中拖尾加性噪声(⾼斯分布噪声)、长拖尾加性噪声(如指数分布噪声)、脉冲噪声(如椒盐噪声、随机数脉冲噪声等)。

有的噪声与图像信号有关,往往随着图像信号的变化⽽变化,如光照变化引起的噪声、飞机扫描图像中的噪声、电视扫描光栅中的相⼲噪声、斑点噪声等。

这种噪声称为乘性噪声(multiplicative noise)。

matlab向图中添加噪声的指令: I1=imnoise(I,type,parameters); 其中,当type为gaussian,所加⼊噪声是parameters为m(均值)、v(⽅差)的⾼斯噪声,这是最普通的噪声。

当type为localvar时,所加⼊噪声是parameters为0(均衡)、v(⽅差)的⾼斯噪声。

当type为poission时,所加⼊的是⽆参数的泊松噪声,在照度⾮常⼩时出现,或在⾼倍电⼦放⼤线路中出现。

当type为salt&pepper时,所加⼊的噪声是parameters为d(密度)的椒盐噪声。

图像平滑处理

图像平滑处理

图像平滑处理图像平滑处理是一种常见的图像处理技术,它可以减少图像中的噪声,并使图像更加清晰和易于分析。

在本文中,我将详细介绍图像平滑处理的原理、方法和应用。

一、图像平滑处理的原理图像平滑处理的目标是通过去除图像中的高频噪声来减少图像的细节和纹理,从而使图像变得更加平滑。

其原理是利用图像中像素之间的空间相关性,通过对像素周围邻域像素的加权平均来实现平滑效果。

常用的图像平滑处理方法包括线性滤波和非线性滤波。

1. 线性滤波线性滤波是一种基于滤波器的方法,它通过对图像中的每个像素应用一个滤波器来实现平滑效果。

常用的线性滤波器包括均值滤波器、高斯滤波器和中值滤波器。

- 均值滤波器:它将每个像素的值替换为其周围邻域像素的平均值。

均值滤波器适用于去除高斯噪声等均值为零的噪声。

- 高斯滤波器:它将每个像素的值替换为其周围邻域像素的加权平均值,权重由高斯函数决定。

高斯滤波器可以有效地平滑图像并保持图像的边缘信息。

- 中值滤波器:它将每个像素的值替换为其周围邻域像素的中值。

中值滤波器适用于去除椒盐噪声等异常值噪声。

2. 非线性滤波非线性滤波是一种基于排序的方法,它通过对图像中的像素进行排序来实现平滑效果。

常用的非线性滤波器包括双边滤波器和非局部均值滤波器。

- 双边滤波器:它考虑了像素之间的空间距离和像素值之间的差异,通过对邻域像素进行加权平均来实现平滑效果。

双边滤波器可以保持图像的边缘信息,并有效地去除噪声。

- 非局部均值滤波器:它考虑了图像中的全局信息,通过对整个图像进行加权平均来实现平滑效果。

非局部均值滤波器可以有效地去除噪声并保持图像的细节。

二、图像平滑处理的方法图像平滑处理可以通过各种方法实现,下面介绍几种常用的方法。

1. 基于OpenCV的图像平滑处理OpenCV是一个开源的计算机视觉库,提供了丰富的图像处理函数和算法。

通过使用OpenCV,可以方便地实现图像平滑处理。

首先,需要安装OpenCV库并导入相应的模块。

图像边沿平滑处理的matlab实现

图像边沿平滑处理的matlab实现

图像边沿平滑处理的matlab实现完成图像处理的算法:1、读⼊⽂件通过matlab读取图像⽂件。

2、获取蒙版对图像进⾏逐点扫描,当点的三个通道值⾄少有⼀个⼩于阈值时让这个点变为纯⿊⾊。

如图,可见此时的蒙版中⼼有空缺,且边缘有噪声⽽且有粘连⼩块。

为了消除这些噪声和⼩块,我们对图像的蒙版进⾏腐蚀和扩张操作。

3、对蒙版进⾏腐蚀应⽤matlab的腐蚀函数,选择腐蚀的结构元素为11*11的全1矩阵,对图像进⾏腐蚀操作,腐蚀后,图像缩⼩,边缘变得平滑。

腐蚀后效果如图:4、对图像进⾏扩张操作将图像复原到原始蒙版,该扩张或丢失边缘信息,正好删除掉噪声和多余的⼩块。

进⾏扩张所⽤的结构元素和腐蚀所⽤的结构元素相同。

可以明显看到边缘得到改善。

扩张后效果如图:5、⽤蒙版遮罩⽣成图像利⽤蒙版的遮罩⽅式,通过原图⽣成新的图像。

能明显看出边沿的噪声和多余⼩块被去除。

产⽣的图像如下图:6、调整图像⼤⼩⾸先通过getFrame函数得到图像的边框,该函数的原理是从上下左右四个⽅向对图像进⾏逼近,记录四个边缘的位置,以便计算缩放的⼤⼩。

原理如下图:在获得了边框后,将框内的图像进⾏⼀个缩放,使该⼦图像的长或宽和原图⼀致,再⽤空⽩补齐另外⼀个⽅向。

最后达到缩放后的图像如下:附matlab程序:附1:main.minputFilePrefix = 'datacache\\';outFilePrefix = 'output\\';fileNamePrefix = 'dst_';picNum = 79;pxmin = 10000000;pdxmax = 0;pymin = 10000000;pdymax = 0;for p = 0:picNum-1if(p<10)fileName = sprintf('%s0%d.jpg',fileNamePrefix,p);else fileName = sprintf('%s%d.jpg',fileNamePrefix,p);end;inputFilePath = [inputFilePrefix fileName];outputFilePath = [outFilePrefix fileName];BW = imread(inputFilePath);[BW1 mask] = getSmoothImage(BW,230);[px py pdx pdy] = getFrame(mask);pxmin = min(pxmin,px);pdxmax = max(pdxmax,pdx);pymin = min(pymin,py);pdymax = max(pdymax,pdy);imwrite(BW1,outputFilePath,'jpg');pend%重新调整⼤⼩for p = 0:picNum-1if(p<10)fileName = sprintf('%s0%d.jpg',fileNamePrefix,p);else fileName = sprintf('%s%d.jpg',fileNamePrefix,p);end;inputFilePath = [outFilePrefix fileName];outputFilePath = [outFilePrefix fileName];I = imread(inputFilePath);INew = reScale(I,pxmin,pdxmax,pymin,pdymax);imwrite(INew,outputFilePath,'jpg');imshow(INew);pEnd附2:getSmoothImage.mfunction [ BW1 mask ] = getSmoothImage( BW,threshold )%GETSMOOTHIMAGE Summary of this function goes here% Detailed explanation goes here% 该函数⾸先得到图形的蒙版,然后对蒙版进⾏腐蚀和扩张,最后利⽤蒙版收缩和扩张 HEIGHT = size(BW,1);WIDTH = size(BW,2);mask = zeros(HEIGHT,WIDTH,'uint8');%得到蒙版threshold = 230;for i = 1:HEIGHTfor j = 1:WIDTHif(BW(i,j,1)>threshold&&BW(i,j,2)>threshold&&BW(i,j,3)>threshold)mask(i,j) = 255;endendend%腐蚀扩张蒙版SE = strel('square',11);mask = imdilate(mask,SE);mask = imerode(mask,SE);%利⽤蒙版遮罩获取图像BW1 = BW;for i = 1:HEIGHTfor j = 1:WIDTHif(mask(i,j) == 255)BW1(i,j,1) = 255;BW1(i,j,2) = 255;BW1(i,j,3) = 255;endendendend附3:getFrame.mfunction [ x,y,dx,dy ] = getFrame( mask )%GETFRAME Summary of this function goes here % Detailed explanation goes here获取图像外框backGroundColor = 255;found = false;for i = 1:size(mask,1)for j = 1:size(mask,2)if(mask(i,j) ~= backGroundColor)y = i;found = true;break;endendif foundbreak;endendfound = false;for i = 1:size(mask,1)for j = 1:size(mask,2)if(mask(size(mask,1)-i+1,j) ~= backGroundColor) dy = size(mask,1)-i+1-y;found = true;break;endendif foundbreak;endendfound = false;for i = 1:size(mask,2)for j = 1:size(mask,1)if(mask(j,i) ~= backGroundColor)x = i;found = true;break;endendif foundbreak;endendfound = false;for i = 1:size(mask,2)for j = 1:size(mask,1)if(mask(j,size(mask,2)-i+1) ~= backGroundColor)dx = size(mask,2)-i+1-x;found = true;break;endendif foundbreak;endendend附4:reScale.mfunction [ INew ] = reScale(I,pxmin,pdxmax,pymin,pdymax) %RESCALE Summary of this function goes here% Detailed explanation goes hereglobal WIDTH;global HEIGHT;ISub = I(pymin:pymin+pdymax,pxmin:pxmin+pdxmax,:);ISubScaled = imresize(ISub,min(WIDTH/pdxmax,HEIGHT/pdymax));INew = 255*ones(HEIGHT,WIDTH,3,'uint8');copyWidth = min(size(ISubScaled,2),WIDTH);copyHeight = min(size(ISubScaled,1),HEIGHT);if(copyWidth==WIDTH)pstarty = max(1,floor((HEIGHT-copyHeight)/2));pstartx = 1;elsepstartx = max(1,floor((WIDTH-copyWidth)/2));pstarty = 1;endt = ISubScaled(1:copyHeight,1:copyWidth,1);%INew(pstarty:pstarty+copyHeight-1,pstartx:pstartx+copyWidth-1,3) = t;for i = 1:copyHeightfor j = 1:copyWidthINew(pstarty+i-1,pstartx+j-1,:) = ISubScaled(i,j,:);endendend附:5:在探索过程中所写的⼀些函数:1、获取主体中的像素点:通过getRect函数,通过逐⾏扫描,依次查找不是纯⽩⾊的点,在找到这个点之后,搜索以这个点为左上定点以estimateLength为边长的矩形,统计出纯⽩点和⾮纯⽩点的⽐例,让这个⽐例达到⼀个阈值时,我们认为这个点就是主体中的⼀个点,可以根据这个点采⽤floodfill算法。

图像平滑处理

图像平滑处理

图象平滑处理图象平滑处理是一种常见的图象处理技术,旨在减少图象中的噪声和细节,使图象更加平滑和清晰。

在本文中,我将详细介绍图象平滑处理的原理、方法和应用。

一、原理图象平滑处理的原理是基于图象中像素值的平均化或者滤波操作。

通过对图象中的像素进行平均化处理,可以减少噪声的影响,使图象更加平滑。

常见的图象平滑处理方法包括均值滤波、中值滤波和高斯滤波。

1. 均值滤波均值滤波是一种简单而有效的图象平滑处理方法。

它通过计算像素周围邻域的平均值来替代该像素的值。

均值滤波器的大小决定了邻域的大小,较大的滤波器可以平滑更大范围的图象。

2. 中值滤波中值滤波是一种非线性滤波方法,它将像素周围邻域的像素值进行排序,并取中间值作为该像素的值。

中值滤波器对于去除椒盐噪声等离群点非常有效,但对于平滑边缘和细节的效果不如均值滤波。

3. 高斯滤波高斯滤波是一种基于高斯函数的线性平滑方法。

它通过对像素周围邻域进行加权平均来替代该像素的值。

高斯滤波器的权重由高斯函数确定,距离中心像素越远的像素权重越小。

高斯滤波器可以有效平滑图象并保持边缘的清晰度。

二、方法图象平滑处理可以使用各种图象处理软件和编程语言来实现。

以下是一种常见的基于Python的图象平滑处理方法的示例:```pythonimport cv2import numpy as npdef image_smoothing(image, method='gaussian', kernel_size=3):if method == 'mean':smoothed_image = cv2.blur(image, (kernel_size, kernel_size))elif method == 'median':smoothed_image = cv2.medianBlur(image, kernel_size)elif method == 'gaussian':smoothed_image = cv2.GaussianBlur(image, (kernel_size, kernel_size), 0) else:raise ValueError('Invalid smoothing method.')return smoothed_image# 读取图象image = cv2.imread('image.jpg')# 图象平滑处理smoothed_image = image_smoothing(image, method='gaussian', kernel_size=5) # 显示结果cv2.imshow('Original Image', image)cv2.imshow('Smoothed Image', smoothed_image)cv2.waitKey(0)cv2.destroyAllWindows()```以上代码使用OpenCV库实现了图象平滑处理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

江苏科技大学数字图像处理本科生课程论文论文题目:图像平滑方法综述与MATLAB实现完成时间:11月20日所在专业:信息与计算科学图像平滑方法综述与MATLAB实现摘要:在图像的生成、传输或变换的过程中,由于多种因素的影响,总要造成图像质量的下降,这就需要进行图像增强。

随着图像处理领域的迅速发展,图像平滑作为图像增强的重要环节,也逐渐受到人们的关注。

图像平滑的目的为了消除噪声。

图像平滑可以在空间域进行,也可以在频率域进行。

空间域常用的方法有领域平均法、中值滤波和多图像平均法;在频率域,因为噪声频谱多在高频段,因此可以采用各种形式的低通滤波方法进行平滑处理。

关键词:图像平滑;消除噪声;领域平均法;中值滤波;低通滤波法………1 研究背景总所周知,实际获得的图像在形成、传输接收和处理的过程中,不可避免地存在着外部干扰和内部干扰,如光电转换过程中敏感元件灵敏度的不均匀性、数字化过程中的量化噪声、传输过程中的误差以及人为因素等,均会使图像质量变差,需要进行图像的平滑处理。

图像平滑是一种实用的熟悉图像处理技术,一个较好的平滑处理方法应该既能消除图像噪声,又不使图像边缘轮廓和线条变模糊,这就是研究数字图形平滑处理要追求的目标。

2.主要理论概况2.1 邻域平均法邻域平均法就是对含噪声的原始图像的每一个像素点取一个邻域,计算中所有像素灰度级的平均值,作为邻域平均处理后的图像的像素值。

即式中,),为邻域中像素的点数。

是预先设定的阈值,当某些点的灰度值与其邻域点灰度平均值之差不超过阈值式中,时,仍保留这些点的灰度值。

当某些点的灰度值与其邻点灰度的均值差别较大时,这些点必然是噪声,这时再取其邻域平均值作为这些点的灰度点。

这样平滑后的图像比单纯的进行邻域平均后的图像要清晰一些,平滑效果仍然很好。

2.2 中值滤波中值滤波是一种非线性处理技术,由于它在实际运算过程中并不需要知道图像的统计特性,所以比较方便。

中值滤波最初是应用在一维信号处理技术中,后来被二维的图像处理技术所引用。

在一定条件下,中值滤波可以克服线性滤波器所带来的图像细节模糊,而且对滤波除脉干扰及图像扫描噪声非常有效。

但是对一些细节多,特别是点、线、尖顶较多的图像则不宜采用中值滤波的方法。

中值滤波的目的是保护图像边缘的同时去除噪声。

2.2.1 中值滤波的主要原理中值滤波实际上就是用一个含有奇数个像素的滑动窗口,将窗口正中点的灰度值用窗口内各点的中值代替。

例如若窗口长度为5,窗口中像素的灰度值分别为80、90、200、110、120,则中值为110,于是原来窗口正中的200就由110代替。

设有一个一维序列,用窗口长度为m(m为奇数)的窗口对该序列进行中值滤波,就是从序列中相继抽出m 个数其中为窗口中心值,,再将这m个点的值按其数值大小排列,取其序号为正中间的那个值作为滤波器的输出。

用数学公式可表示为对二维序列进行中值滤波时,滤波窗口也是二维的,只不过这种二维窗口可以有各种不同的形状,如线状、方形,圆形、十字形和圆环形等。

二维数据的中值滤波可以表示为A为窗口2.2.2 中值滤波的主要特性(1)对某些输入信号中值滤波具有不变性。

对某些特定的输入信号,中值滤波的输出保持输入信号值不变。

(2)中值滤波去噪声性能。

中值滤波可以用来减弱随机干扰和脉冲干扰。

2.3 频域低通滤波法图像的边缘以及噪声干扰在图像的频域上对应于图像傅里叶变换中的高频部分,以去掉噪声使图像平滑。

根据信号系统的理论,低通滤波法的一半形式可以写为式中是含噪图像的傅里叶变换;是平滑后图像的傅里叶变换;是传递函数。

利用和的高频分量得到衰减,得到后再经过傅里叶反变换就可以得到所希望的图像。

低通滤波法的系统框架图如下图所示。

低通滤波法的系统框图选择不同的可以不同的平滑效果。

常用的传递函数由4种,分述如下。

(1)理想低通滤波器(ILPF)一个理想的低通滤波器的传递函数由下式表示:式中,是一个事先设置的非负量,成为理想低通滤波器的截止频率;代表从频率平面的原点到点的距离,即(2)巴特沃斯低通滤波器(BLPF)一个n阶巴特沃斯滤波器的传递系数为FFT低通滤波器IFFT或(3)指数低通滤波器(ELPF)指数低通滤波器的传递函数表示为或(4)梯形低通滤波器(TLBF)梯形在规定和时,要满足的条件。

一般为了方便起见,把的第一个转折点定义为截止频率,第二个变量可以任意选取,只要满足的条件就可以了。

3.研究的主要内容3.1 均值滤波lc=imread('D:\数字图像处理\图片一.jpg');I=rgb2gray(lc);J1=imnoise(I,'gaussian',0,0.02);K1=im2double(J1);h1=fspecial('average',3);h2=fspecial('average',5);h3=fspecial('average',7);G1=filter2(h1,K1,'same');G2=filter2(h2,K1,'same');G3=filter2(h3,K1,'same'); subplot(3,3,1);imshow(lc);xlabel('原图');subplot(3,3,2);imshow(J1); xlabel('添加高斯噪声后的图像'); subplot(3,3,3);imshow(G1); xlabel('3*3均值滤波后的图像'); subplot(3,3,4);imshow(G2); xlabel('5*5均值滤波后的图像'); subplot(3,3,5);imshow(G3); xlabel('7*7均值滤波后的图像'); J2= imnoise(I,'salt & pepper',0.02); K2=im2double(J2);h=fspecial('average');G4=filter2(h,K2,'same');subplot(3,3,6);imshow(J2); xlabel('添加椒盐噪声');subplot(3,3,7);imshow(G1); xlabel('均值滤波');J3 = imnoise(I,'speckle',0.02);K3=im2double(J3);h=fspecial('average');G5=filter2(h,K3,'same');subplot(3,3,8);imshow(J3); xlabel('添加乘性噪声');subplot(3,3,9);imshow(G5); xlabel('均值滤波');图31添加高斯噪声、椒盐噪声、乘性噪声及均值滤波后的图片分析结果:从图31中我们可以看出,邻域平均处理后,图像的噪声得到了抑制,但在此同时也使图像变得相对模糊,对高斯噪声的平滑效果比较好。

邻域平均法的平滑效果与所选用的模板大小有关,模板尺寸越大,图像的模糊程度越大,因此在处理图像时要根据不同的目的,而选择不同的模板大小来平滑图像。

3.2中值滤波lc=imread('D:\数字图像处理\图片一.jpg');I=rgb2gray(lc);J1=imnoise(I,'gaussian',0,0.02);K1=im2double(J1);h1=fspecial('average',3);h2=fspecial('average',5);h3=fspecial('average',7);G1=medfilt2(K1,[3,3]);G2=medfilt2(K1,[5,5]);G3=medfilt2(K1,[7,7]);subplot(3,3,1);imshow(lc);xlabel('原图');subplot(3,3,2);imshow(J1); xlabel('添加高斯噪声后的图像'); subplot(3,3,3);imshow(G1); xlabel('3*3中值滤波后的图像'); subplot(3,3,4);imshow(G2); xlabel('5*5中值滤波后的图像'); subplot(3,3,5);imshow(G3); xlabel('7*7中值滤波后的图像'); J2= imnoise(I,'salt & pepper',0.02); K2=im2double(J2);h=fspecial('average');G4=medfilt2(K2);subplot(3,3,6);imshow(J2); xlabel('添加椒盐噪声');subplot(3,3,7);imshow(G4); xlabel('中值滤波');J3 = imnoise(I,'speckle',0.02);K3=im2double(J3);h=fspecial('average');G5=medfilt2(K3);subplot(3,3,8);imshow(J3); xlabel('添加乘性噪声');subplot(3,3,9);imshow(G5); xlabel('中值滤波');图32添加高斯噪声、椒盐噪声、乘性噪声及中值滤波后的图片结果分析:从图32中我们可以看出,中值滤波对椒盐噪声滤波效果最好,对乘性噪声滤波效果一般,对高斯噪声滤波效果最差,所以中值滤波最适合椒盐噪声滤波。

因为中值滤波是一种非线性滤波。

它利用一个含有奇数个像素滑动窗口,将窗口内正中点的灰度值用窗口内各点的中值代替。

由于椒盐噪声是脉冲噪声,它的灰度值不是正中,所以可以被直接滤除,而点线等较多的图像或者随机噪声图像(如高斯图像)的图像中,有信号可能不在正中间,所以中值滤波可能会滤除这些信号,会使信号损失。

3.3均值滤波close all;Q=0.4;figureIc=imread('C:\数字图像处理\图片一.jpg');I=rgb2gray(Ic);subplot(3,3,1);imshow(I);title('原图像');x1=imnoise(I,'gaussian',0,0.02);x2= imnoise(I,'salt & pepper',0.02);x3 = imnoise(I,'speckle',0.02);F=fft2(x1);M=size(F,1);N=size(F,2);u=0:M1;v=0:N1;idx=find(u>M/2);%找到大于M/2的数据u(idx)=u(idx)M;idy=find(v>N/2);v(idy)=v(idy)N;[V,U]=meshgrid(v,u);D=sqrt(U.^2+V.^2);H=double(D<=size(F,1)/2*Q);G=F.*H;g=real(ifft2(G));F2=fft2(x2);M2=size(F2,1);N2=size(F2,2);u2=0:M21;v2=0:N21;idx2=find(u2>M2/2);%找到大于M2/2的数据u2(idx2)=u2(idx2)M2;idy2=find(v2>N2/2);v2(idy2)=v2(idy2)N2;[V2,U2]=meshgrid(v2,u2);D2=sqrt(U2.^2+V2.^2);H2=double(D2<=size(F2,1)/2*Q);G2=F2.*H2;g2=real(ifft2(G2));F3=fft2(x3);M3=size(F3,1);N3=size(F3,2);u3=0:M31;v3=0:N31;idx3=find(u3>M3/2);%找到大于M3/2的数据u3(idx3)=u3(idx3)M3;idy3=find(v3>N3/2);v3(idy3)=v3(idy3)N3;[V3,U3]=meshgrid(v3,u3);D3=sqrt(U3.^2+V3.^2);H3=double(D3<=size(F3,1)/2*Q);G3=F3.*H3;g3=real(ifft2(G3));subplot(3,3,2);imshow(x1);title('加入高斯噪声后的图像'); subplot(3,3,3);imshow(uint8(g));title('理想低通滤波后的图像'); subplot(3,3,4);imshow(x1);title('加入椒盐噪声后的图像'); subplot(3,3,5);imshow(uint8(g));title('理想低通滤波后的图像'); subplot(3,3,6);imshow(x1);title('加入乘性噪声后的图像'); subplot(3,3,7);imshow(uint8(g));title('理想低通滤波后的图像');图33添加高斯噪声、椒盐噪声、乘性噪声及低通滤波后的图片结果分析:从图33中可以看出频率低通滤波具有更好的选择性,对各种污染过图像的噪声在一定范围内也可以起到抑制作用,同时也对图像的边缘细节和高频信息分量有更好的保持作用。

相关文档
最新文档