图像平滑方法综述与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库实现了图象平滑处理。

基于MATLAB的数字图像平滑和锐化处理算法分析

基于MATLAB的数字图像平滑和锐化处理算法分析

基于MATLAB的数字图像平滑和锐化处理算法分析卞凤杰2141141摘要:本文主要内容是利用MATLAB 对图像进行频域平滑和锐化处理。

本文先对图像进行空域平滑、锐化处理,然后再进行频域平滑滤波、锐化等操作,可以简单比较空域和频域下对图像进行处理的不同效果,并且通过改变参数确定效果最佳的平滑和锐化处理算法,同时给出了运用MATLAB 进行图像处理的前后对照图像。

关键词:MATLAB;图像处理;图像平滑;图像锐化Abstract:In this paper, the main content is to use MATLAB to do image smoothing and sharpening processing in the frequency-domain.Firstly,this article to do spatial smoothing, sharpening processing of the image, and then to frequency-domain smoothing filtering, sharpening, etc.This can be simply compare the different results of image processing in spatial domain and frequency domain. Secondly, by changing the parameters to determine the best smoothing and sharpening processing algorithm, and gives a comparison before and after using MATLAB image processing image.Keywords:MATLAB;Image Processing;Image smoothing;Image sharpening1、引言数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。

Matlab技术图像处理方法总结

Matlab技术图像处理方法总结

Matlab技术图像处理方法总结图像处理是现代科学技术中不可或缺的一部分。

在各个领域,从医学影像到计算机视觉,图像处理技术的应用都十分广泛。

而Matlab作为一种强大的科学计算软件,提供了丰富的图像处理工具箱,为研究人员和工程师们提供了方便快捷的解决方案。

本文将总结一些常用的Matlab技术图像处理方法,探讨它们的原理和应用。

1. 图像预处理方法图像预处理是在进行进一步分析或处理之前,对图像进行必要的调整和增强的步骤。

其中,常见的预处理方法包括图像灰度转换、直方图均衡化和图像滤波等。

1.1 图像灰度转换图像灰度转换是将彩色图像转换为灰度图像的过程。

在Matlab中,可以使用`rgb2gray`函数将RGB图像转换为灰度图像。

这种转换可以简化图像处理的过程,使得处理灰度图像更加高效。

常见的应用包括图像增强、边缘检测和目标识别等。

1.2 直方图均衡化直方图均衡化是一种常用的图像增强方法,通过重新分布图像的像素值,增强图像的对比度和细节。

在Matlab中,可以使用`histeq`函数实现直方图均衡化。

该方法广泛应用于图像增强、特征提取和图像分割等领域。

1.3 图像滤波图像滤波是通过对图像进行滤波处理,降低噪声、增强图像细节或者平滑图像的过程。

在Matlab中,可利用各种滤波器进行图像滤波,如均值滤波、中值滤波和高斯滤波等。

滤波技术被广泛应用于图像降噪、边缘检测和特征提取等方面。

2. 图像分割方法图像分割是将图像划分为不同区域的过程,每个区域具有相似的特性。

常见的图像分割算法有基于阈值的方法、区域生长方法和边缘检测方法。

2.1 基于阈值的方法基于阈值的图像分割方法是一种简单而有效的图像分割方法,根据像素灰度值与预先设定的阈值进行比较,将图像分为不同的区域。

在Matlab中,可以使用`imbinarize`函数实现基于阈值的图像分割。

该方法常用于目标检测和图像分析等应用中。

2.2 区域生长方法区域生长方法是一种基于像素相似性的图像分割方法,通过从种子像素开始,将与其相邻的像素逐渐合并至同一区域。

《数字图像处理及MATLAB实现》图像增强与平滑实验

《数字图像处理及MATLAB实现》图像增强与平滑实验

《数字图像处理及MATLAB实现》图像增强与平滑实验一.实验目的及要求1、熟悉并掌握MA TLAB 图像处理工具箱的使用;2、理解并掌握常用的图像的增强技术。

二、实验设备MATLAB 6.5 以上版本、WIN XP 或WIN2000 计算机三、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。

熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。

(可将每段程序保存为一个.m文件)1.直方图均衡化clear all; close all % Clear the MATLAB workspace of any variables% and close open figure windows.I = imread('pout.tif'); % Reads the sample images ‘pout.tif’, and stores it inimshow(I) % an array named I.display the imagetext(60,20,'李荣桉1909290239','horiz','center','color','r')figure, imhist(I) % Create a histogram of the image and display it in% a new figure window.[I2,T] = histeq(I); % Histogram equalization.figure, imshow(I2) % Display the new equalized image, I2, in a new figure window.text(60,20,'李荣桉1909290239','horiz','center','color','r')figure, imhist(I2) % Create a histogram of the equalized image I2.figure,plot((0:255)/255,T); % plot the transformation curve.imwrite (I2, 'pout2.png'); % Write the newly adjusted image I2 to a disk file named% ‘pout2.png’.imfinfo('pout2.png') % Check the contents of the newly written file2.直接灰度变换clear all; close allI = imread('cameraman.tif'); 注意:imadjust()功能:调整图像灰度值或颜色映像表,也可实现伽马校正。

图像平滑算法

图像平滑算法

一、实验目的:理解图像平滑的相关算法,并掌握算法的实现。

二、实验内容:1.读入一幅灰度图像。

2.对原始图片添加噪声(随机噪声和椒盐噪声)(imnoise函数)。

3.利用均值滤波算法(取模板分别为3×3,5×5)去除噪声(自己编写一段代码实现此功能),显示去噪前后的图像。

4.利用中值滤波算法对图像去除噪声(自己编写一段代码实现此功能),显示去噪前后的图像。

三、实验要求:1.用Matlab语言进行编程,实现上述功能,并尽量使得程序具有通用性。

2.撰写实验报告并附上所用程序和结果。

四、实验结果:clear;clc;f=imread('eight.tif');f2=imnoise(f,'salt & pepper',0.02);[r,c]=size(f2);g=f2;for i=2:r-1for j=2:c-1nei=f2(i-1:i+1,j-1:j+1);avg=sum(sum(nei))/9;g(i,j)=avg;endendg=uint8(g);subplot(131),imshow(f);subplot(132),imshow(f2);subplot(133),imshow(g);clear;clc;f=imread('eight.tif');f2=imnoise(f,'salt & pepper',0.02); [r,c]=size(f2);g=f2;for i=3:r-2for j=3:c-2nei=f2(i-2:i+2,j-2:j+2);avg=sum(sum(nei))/25;g(i,j)=avg;endendg=uint8(g);subplot(131),imshow(f);subplot(132),imshow(f2);subplot(133),imshow(g);clear;clc;f=imread('eight.tif');f2=imnoise(f,'salt & pepper',0.02);[r c]=size(f2)g=f2;u=zeros(1,9);for i=2:r-1for j=2:c-1u(1)=g(i,j);u(2)=g(i,j+1);u(3)=g(i-1,j+1);u(4)=g(i-1,j);u(5)=g(i-1,j-1);u(6)=g(i,j-1);u(7)=g(i+1,j-1);u(8)=g(i+1,j);u(9)=g(i+1,j+1);for p=1:8for q=1:8-pif u(q)>u(q+1)k=u(q);u(q)=u(q+1);u(q+1)=k;endendendrg(i,j)=u(5);endendg=uint8(rg);subplot(131),imshow(f);subplot(132),imshow(f2);subplot(133),imshow(g);。

图像快速平滑处理方法(全文)

图像快速平滑处理方法(全文)

图像快速平滑处理方法0 引言近年来,随着图形处理器硬件技术的不断进展以及可编程能力的不断增强,越来越多的应用通过使用基于GPU的计算框架提高了算法和系统的效率。

GPU的应用领域不断扩大,已被广泛地应用到通用信号处理、物理模拟、财务数据分析以及生物科学等领域,并取得了显著的效果。

在分子动力学领域中,GeForce 8800GTX 实现了比CPU高达240倍的处理速度。

在脑电波模拟、视觉和嗅觉计算等方面,通过协同CPU和GPU工作,实现了130倍的性能提高。

借助GPU,GIS(地球信息系统)原本需要20分钟完成的计算过程,现在只需要30秒就能完成。

1 GPU并行计算架构GPU现在已已实现可编程的图像处理,由于它具有高内存带宽驱动的多内核,已成为图像处理的绝对主力。

1.1 GPU架构GPU支持单指令多数据(SIMD)指令的数据并行计算。

在SIMD结构中,单一的操纵组件分配到每个管线,相同的指令同时执行。

例如,NVDI8800GT包含每组8个,共14组的多处理器组,但每个处理器只有一个指令单元。

从线程的角度看,每个多处理器组可以同时并行运行768个活跃线程,即GPU包含14组多处理器组可以同时并行10752个活动线程。

在存储器方面,每个多处理器拥有16KB的可读写共享内存、8KB的只读常量缓存、8KB的只读纹理缓存和8192个32位寄存器。

1.2 GPU编程模型CUD(统一设备计算架构)是一个GPU编程平台,见图2。

它包括一个硬件驱动程序和应用程序接口(PI)以及两个数学函数库,因此程序员不需要调用复杂的图形PI接口。

CUD中的PI还兼容标准C语言库,这样程序员就可以通过调用函数访问内存并执行指令。

为了简化开发,CUD同意程序员将CPU代码和GPU的代码混合到程序文件。

NVCC作为C语言编译器,负责隔离设备代码和宿主代码。

在CUD汇编时,GPU作为计算设备可以执行大量的并行线程,类似于CPU的协同处理器。

基于MATLAB的图像平滑算法实现及应用

基于MATLAB的图像平滑算法实现及应用

目录第一章、概述 (2)1.1 图像平滑概述 (2)1.2图像平滑应用 (2)1.3噪声模型 (2)第二章、图像平滑方法 (5)2.1 空域低通滤波 (5)2.1.1 均值滤波器 (5)2.1.2 中值滤波器 (6)2.2 频域低通滤波 (7)第三章、图像平滑处理与调试 (10)3.1 模拟噪声图像 (10)3.2均值滤波法 (14)3.3 中值滤波法 (17)3.4 频域低通滤波法 (20)第四章、总结与体会 (20)参考文献 (23)第一章、概述1.1图像平滑概述图像平滑(S m o o t h i n g)的主要目的是减少图像噪声。

图像噪声来自于多方面,有来自于系统外部的干扰(如电磁波或经电源窜进系统内部的外部噪声),也有来自于系统内部的干扰(如摄像机的热噪声,电器机械运动而产生的抖动噪声内部噪声)。

实际获得的图像都因受到干扰而有噪声,噪声产生的原因决定了噪声分布的特性及与图像信号的关系。

减少噪声的方法可以在空间域或在频率域处理。

在空间域中进行时,基本方法就是求像素的平均值或中值;在频域中则运用低通滤波技术。

图像中的噪声往往是和信号交织在一起的,尤其是乘性噪声,如果平滑不当,就会使图像本身的细节如边缘轮廓,线条等模糊不清,从而使图像降质。

图像平滑总是要以一定的细节模糊为代价的,因此如何尽量平滑掉图像的噪声,又尽量保持图像的细节,是图像平滑研究的主要问题之一。

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

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

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

在图像处理体系中,图像平滑是图像复原技术针对“一幅图像中唯一存在的退化是噪声”时的特例。

1.3噪声模型1.3.1噪声来源一幅图像可能会受到各种噪声的干扰,而数字图像的实质就是光电信息,因此图像噪声主要可能来源于以下几个方面:光电传感器噪声、大气层电磁暴、闪电等引起的强脉冲干扰、相片颗粒噪声和信道传输误差引起的噪声等。

在MATLAB中进行图像处理的方法

在MATLAB中进行图像处理的方法

在MATLAB中进行图像处理的方法引言图像处理是一门研究如何对数字图像进行分析、处理和识别的学科。

在现代社会中,图像处理已经广泛应用于各个领域,如医学影像、电子商务和计算机视觉等。

MATLAB是一种强大的数值计算环境和编程语言,被广泛用于图像处理领域。

在本文中,我们将介绍在MATLAB中进行图像处理的一些常见方法。

一、图像读取与显示在MATLAB中,可以使用imread函数读取图像文件,并使用imshow函数显示图像。

例如,可以使用以下代码读取并显示一张图像:```matlabimg = imread('image.jpg');imshow(img);```二、图像增强图像增强是指通过改变图像的外观或质量,以提高图像的观感和可识别性。

在MATLAB中,有多种方法用于图像增强。

下面介绍其中的几种方法:1. 灰度转换灰度转换是将彩色图像转换为灰度图像的过程。

在MATLAB中,可以使用rgb2gray函数将彩色图像转换为灰度图像。

例如,可以使用以下代码实现灰度转换:```matlabgray_img = rgb2gray(img);imshow(gray_img);```2. 直方图均衡化直方图均衡化是一种常用的图像增强方法,用于提高图像的对比度。

在MATLAB中,可以使用histeq函数实现直方图均衡化。

例如,可以使用以下代码实现直方图均衡化:```matlabeq_img = histeq(gray_img);imshow(eq_img);```3. 锐化锐化是一种增强图像边缘和细节的方法。

在MATLAB中,可以使用imsharpen 函数对图像进行锐化处理。

例如,可以使用以下代码实现图像锐化:```matlabsharp_img = imsharpen(img);imshow(sharp_img);```三、图像滤波图像滤波是指对图像进行平滑处理以去除噪声或减小图像细节的过程。

在MATLAB中,有多种滤波方法可供选择。

matlab 点画出平滑曲线 简单方法

matlab 点画出平滑曲线 简单方法

(原创实用版4篇)编制人员:_______________审核人员:_______________审批人员:_______________编制单位:_______________编制时间:_______________序言下载提示:该文档由本店铺原创并精心编排,下载后,可根据实际需要进行调整和使用,希望能够帮助到大家,谢射!(4篇)《matlab 点画出平滑曲线简单方法》篇1在 MATLAB 中,画出平滑曲线的简单方法有两种:1. 拟合方法:使用 polyfit 函数对数据点进行拟合,然后使用 polyval 函数求出拟合曲线上的点的值,最后使用 plot 函数将拟合曲线画出。

具体步骤如下:a. 定义数据点矩阵 X;b. 使用 polyfit 函数对数据点进行拟合,设置拟合次数(如二次拟合,使用 cpolyfit 函数);c. 使用 polyval 函数求出拟合曲线上的点的值,设置参数为拟合系数和数据点矩阵 X;d. 使用 plot 函数将拟合曲线画出。

2. 插值方法:使用 spcrv 函数对数据点进行插值,然后使用 plot 函数将插值曲线画出。

具体步骤如下:a. 定义数据点矩阵 X;b. 使用 spcrv 函数对数据点进行插值,设置插值次数和插值点数;c. 使用 values 函数求出插值曲线上的点的值;d. 使用 plot 函数将插值曲线画出。

需要注意的是,在使用以上方法画出平滑曲线前,需要先将数据点矩阵 X 中的数据点按照横坐标排序,以便得到正确的插值或拟合结果。

《matlab 点画出平滑曲线简单方法》篇2在 MATLAB 中,画出平滑曲线的简单方法有两种:1. 拟合方法:使用 polyfit 函数进行拟合,然后使用 polyval 函数求出每个横坐标对应的值,最后使用 plot 函数绘制平滑曲线。

具体步骤如下:- 定义横坐标和纵坐标的向量 x 和 y;- 使用 polyfit 函数对数据进行拟合,设置拟合次数(如二次拟合,使用cpolyfit 函数);- 使用 polyval 函数根据拟合系数求出每个横坐标对应的值,得到平滑曲线上的点;- 使用 plot 函数绘制平滑曲线。

MATLAB绘制平滑曲线

MATLAB绘制平滑曲线

MATLAB绘制平滑曲线x=[0.1 0.16 0.27 0.41 0.48 0.59 0.8];y=[8 70 118 100 9 0 5];以上是每一个X和Y对应的坐标,请问如何编程能够绘制平滑曲线,这个图形就像二次函数一样的如果要在图中绘制一条直线加上y=70的直线,用不同颜色区分!x=[0 0.1 0.16 0.27 0.41 0.48 0.59 0.8];y=[5 9 70 118 100 17 0 5];y1=[22.8 22.8 22.8 22.8 22.8 22.8 22.8 22.8];values1=spcrv([[x(1) x x(end)];[y(1) y y(end)]],3,1000);values2=spcrv([[x(1) x x(end)];[y1(1) y1 y1(end)]],3,1000);plot(values1(1,:),values1(2,:),'r',values2(1,:),values2(2,:),'b')ans2:代码如下:x=[0.1 0.16 0.27 0.41 0.48 0.59 0.8];y=[8 70 118 100 9 0 5];xp=0:0.1:1;yp=interp1(x,y,xp);plot(x,y,'b-',xp,yp,'r-')%红色为差值后的平滑图像hold ony1=70;plot(xp,y1,'c-')% 自己试一下ans3:x=[0.1 0.16 0.27 0.41 0.48 0.59 0.8];y=[8 70 118 100 9 0 5];X=linspace(0,.9);Y=spline(x,y,X);plot(x,y,'ro',X,Y,X,70+0*X)another file:>help smooth自己查一下帮助another question:x有90个值,Y也有90个值,一一对应,用PLOT(x,y)后是折线,请问怎样把它改为平滑曲线,谢谢!ans:平滑曲线的话,建议你用样条插值。

优秀毕业论文——数字图像平滑滤波在MATLAB上的实现

优秀毕业论文——数字图像平滑滤波在MATLAB上的实现

优秀毕业论文——数字图像平滑滤波在MATLAB上的实现第 5 章图像平滑滤波在MATLAB上的实现本课程设计在MATLAB上实现的程序和结果 I=imread('b.bmp');v=0.5*ones(size(I)); I1=imnoise(I,'localvar',v);I2=imnoise(I,'salt & pepper',0.02);I3=imnoise(I,'speckle',0.02);figure;subplot(221);hold on;title('原图像');imshow(I);hold off;subplot(222);hold on;title('受高斯噪声污染的图像');imshow(I1);hold off;subplot(223);hold on;title('受椒盐噪声污染的图像');imshow(I2);hold off;subplot(224);hold on;title('受乘性噪声污染的图像');imshow(I3);hold off;原图像受高斯噪声污染的图像受椒盐噪声污染的图像受乘性噪声污染的图像h=ones(3,3)/9;J1=imfilter(I1,h); J2=imfilter(I2,h); J3=imfilter(I3,h); figure; subplot(221);hold on;title('原图像');imshow(I);hold off;subplot(222);hold on;title('对有高斯噪声的3*3邻域平均后的图像'); imshow(J1);hold off;subplot(223);hold on;title('对有椒盐噪声的3*3邻域平均后的图像'); imshow(J2);hold off;subplot(224);hold on;title('对有乘性噪声的3*3邻域平均后的图像'); imshow(J3);hold off;原图像高斯噪声3*3邻域平均后的图像椒盐噪声3*3邻域平均后的图像乘性噪声3*3邻域平均后的图像h1=ones(5,5)/25;K1=imfilter(I1,h1); K2=imfilter(I2,h1); K3=imfilter(I3,h1); figure; subplot(221);hold on;title('原图像');imshow(I);hold off;subplot(222);hold on;title('对有高斯噪声的5*5邻域平均后的图像'); imshow(K1);hold off;subplot(223);hold on;title('对有椒盐噪声的5*5邻域平均后的图像'); imshow(K2);hold off;subplot(224);hold on;title('对有乘性噪声的5*5邻域平均后的图像');imshow(K3);hold off;原图像高斯噪声5*5邻域平均后的图像椒盐噪声5*5邻域平均后的图像乘性噪声的5*5邻域平均后的图像L1=medfilt2(I1,[5,5]); L2=medfilt2(I2,[5,5]); L3=medfilt2(I3,[5,5]); figure;subplot(221);hold on;title('原图像');imshow(I);hold off;subplot(222);hold on;title('高斯噪声5*5中值滤波后的图像'); imshow(L1);hold off;subplot(223);hold on;title('椒盐噪声5*5中值滤波后的图像');imshow(L2);hold off;subplot(224);hold on;title('乘性噪声的5*5中值滤波后的图像');imshow(L3);hold off;原图像高斯噪声5*5中值滤波后的图像椒盐噪声5*5中值滤波后的图像乘性噪声的5*5中值滤波后的图像[f1,f2]=freqspace(25,'meshgrid'); Hd=zeros(25,25);d=sqrt(f1.^2+f2.^2)<0.5; Hd(d)=1;h=fsamp2(Hd);figure;freqz2(h,[64,64]);1.510.5Magnitude10.510.500-0.5-0.5-1-1FyFxI=imread('b.bmp');v=0.5*ones(size(I));I1=imnoise(I,'localvar',v); I2=imnoise(I,'salt & pepper',0.02);I3=imnoise(I,'speckle',0.02); J1=imfilter(I1,h,'replicate');J2=imfilter(I2,h,'replicate'); J3=imfilter(I3,h,'replicate'); figure;subplot(221);hold on;title('原图像');imshow(I);hold off;subplot(222);hold on;title('高斯噪声频域滤波后图像');imshow(J1);hold off;subplot(223);hold on;title('椒盐噪声频域滤波后图像');imshow(J2);hold off;subplot(224);hold on;title('乘性噪声频域滤波后图像');imshow(J3);hold off;原图像高斯噪声频域滤波后图像椒盐噪声频域滤波后图像乘性噪声频域滤波后图像。

  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中可以看出频率低通滤波具有更好的选择性,对各种污染过图像的噪声在一定范围内也可以起到抑制作用,同时也对图像的边缘细节和高频信息分量有更好的保持作用。

相关文档
最新文档