图像平滑的matlab实现论文

合集下载

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

举个例⼦: 从这个图中,我们可以观察到噪声的特点: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(密度)的椒盐噪声。

matlab surf光滑处理

matlab surf光滑处理

matlab surf光滑处理
在使用matlab中的surf函数绘制三维图形时,往往会出现图像表面不光滑的情况。

这是因为surf函数在绘制时是通过将数据点连接起来形成三角面片来实现的,而这些三角面片的大小和方向不一定能够完美地贴合数据点,从而导致表面不光滑。

为了解决这个问题,可以使用matlab中的smooth函数对数据进行平滑处理。

在进行平滑处理前,需要将数据点按照一定的规律排列,以便于smooth函数对其进行处理。

一般来说,可以使用meshgrid函数生成网格数据,并将其转换为列向量的形式,然后再将列向量和对应的数值向量作为输入参数传递给smooth函数。

在平滑处理完成后,可以再次使用surf函数将处理后的数据进行绘制。

此时,表面将变得更加光滑,更符合实际情况。

需要注意的是,平滑处理可能会对数据造成一定程度的变形,因此需要根据实际需求来确定平滑处理的程度。

如果平滑程度过高,可能会导致数据失真,从而影响后续的数据分析和处理。

- 1 -。

图像边沿平滑处理的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算法。

Matlab中的图像重建与图像恢复技术

Matlab中的图像重建与图像恢复技术

Matlab中的图像重建与图像恢复技术深入研究和掌握图像重建与图像恢复技术对于图像处理和计算机视觉领域的研究人员来说至关重要。

在现实生活中,图像可能因传感器噪声、数据传输损失或其他因素而受损,导致图像出现模糊、噪声等问题。

为了改善这些问题,我们需要使用图像重建和恢复技术,将受损的图像还原到原始清晰的状态。

Matlab作为一种功能强大的科学计算软件,提供了丰富的工具和函数,可以帮助我们实现图像重建和恢复的任务。

在本文中,我们将探讨几种常用的图像重建和恢复技术,并介绍如何使用Matlab来实现它们。

第一部分:图像去噪与平滑图像中的噪声往往是由电子设备、图像采集过程或传输过程中引入的。

去除这些噪声对于提高图像质量非常重要。

在Matlab中,我们可以使用均值滤波、中值滤波、高斯滤波等方法进行图像去噪和平滑。

均值滤波是一种常用的线性滤波方法,它通过计算图像周围像素的平均值来减小噪声。

中值滤波则取邻域像素的中值作为当前像素的值,可以有效地去除脉冲噪声和椒盐噪声。

高斯滤波则使用高斯核函数对图像进行平滑,可以在平滑图像的同时保留图像的细节信息。

第二部分:图像复原与去模糊当图像受到模糊因素的影响时,如相机抖动、运动模糊等,我们可以使用图像复原和去模糊技术来提高图像的清晰度。

在Matlab中,我们可以使用逆滤波、维纳滤波等方法进行图像复原和去模糊。

逆滤波是一种经典的图像复原方法,通过将图像的频谱进行逆变换,消除因模糊而引入的相位延迟和衰减。

然而,逆滤波在存在噪声的情况下容易引入放大噪声的问题。

为了解决这个问题,可以使用维纳滤波器,它通过权衡图像信号和噪声的功率谱来恢复原始图像。

第三部分:图像超分辨率重建超分辨率重建是一种在低分辨率图像的基础上提高图像分辨率的技术。

它在很多应用中都非常有用,如视频监控、医学图像分析等。

在Matlab中,我们可以使用插值方法、重建方法等技术进行图像超分辨率重建。

插值方法是一种常用的图像超分辨率技术,它通过对像素进行重新采样来增加图像的分辨率。

基于MATLAB的数字图像处理的设计与实现

基于MATLAB的数字图像处理的设计与实现

基于MATLAB的数字图像处理的设计与实现摘要数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人们服务。

数字图像处理是一种通过计算机采用一定的算法对图形图像进行处理的技术。

目的:改善医学图像质量,使图像得到增强。

方法:利用Matlab工具箱函数,采用灰度直方图均衡化和高通滤波的方法对一幅X线图像进行增强处理。

结果:用直方图均衡化的算法,将原始图像密集的灰度分布变得比较稀疏,处理后的图像视觉效果得以改善。

高通滤波对于局部细节增强显著,高通滤波后使不易观察到的细节变得清晰。

结论:使用Matlab工具箱大大简化了编程工作,为医学图像处理提供了一种技术平台。

经过直方图均衡化和高通滤波处理后的医学图像,视觉效果得到改善。

关键词:MATLAB;直方图均衡化;高通滤波;图像增强AbstractDigital image processing is an emerging technology, with the development of computer hardware, real—time digital image processing has become possible due to digital image processing algorithms to appear,making it faster and faster processing speed,better for people services .Digital image processing is used by some algorithms computer graphics image pro cessing technology. Objective:To improve the quality of medical image by enhancing the details。

Matlab中的插值和平滑方法

Matlab中的插值和平滑方法

Matlab中的插值和平滑方法1. 引言在数值分析和数据处理中,插值和平滑是常用的技术手段,可以用于填补数据的空缺以及降低数据中的噪声。

Matlab作为一种强大的数值计算和数据处理软件,提供了丰富的插值和平滑方法,本文将介绍其中的一些常用方法及其应用。

2. 插值方法2.1 线性插值线性插值是最简单的一种插值方法,它假设待插值函数在相邻数据点之间是线性变化的。

Matlab中提供了interp1函数实现线性插值,可以通过设定插值点的横坐标向量和已知数据点的横坐标向量,以及对应的纵坐标向量,得到插值结果。

2.2 分段插值分段插值是一种更精确的插值方法,它假设待插值函数在相邻数据点之间是分段线性变化的。

Matlab中的interp1函数也可以实现分段插值,通过指定'linear'插值方法和 'pchip'插值方法,可以得到不同的插值结果,前者得到的结果比较平滑,而后者更接近原始数据的形状。

2.3 样条插值样条插值是一种更高阶的插值方法,它假设待插值函数在相邻数据点之间是多项式变化的。

Matlab中的spline函数可以实现三次样条插值,它通过计算每个数据点处的二阶导数,得到一个以每个数据点为节点的三次多项式函数。

样条插值可以更加精确地还原数据,但也容易受到离群点的干扰。

3. 平滑方法3.1 移动平均移动平均是一种常用的平滑方法,它通过计算数据点周围一定范围内的平均值,得到平滑后的结果。

Matlab中的smoothdata函数提供了不同的平滑方法,包括简单移动平均、指数移动平均和加权移动平均等,可以根据具体需求选择适当的方法。

3.2 Savitzky-Golay滤波Savitzky-Golay滤波是一种基于最小二乘法的平滑方法,它通过拟合多项式曲线来实现数据的平滑。

Matlab中的sgolay函数可以实现Savitzky-Golay滤波,通过指定不同的拟合阶数和窗口大小,可以得到不同程度的平滑结果。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.论文目的1.1 通过几种图像平滑的方法,实现被噪声污染过的图像的平滑处理,其中包括空间域和频率域;1.2 在加深对数字图像处理课本知识理解的基础上,学会运用已学的知识对图像平滑的处理方法的结果进行分析。

2.理论及方案(1)图像噪声来源及类型一幅图像在获取和传输等过程中,会受到各种各样噪声的干扰,其主要来源有三:一为在光电、电磁转换过程中引入的人为噪声;二为大气层电(磁)暴、闪电、电压、浪涌等引起的强脉冲性冲激噪声的干扰;三为自然起伏性噪声,由物理量的不连续性或粒子性所引起,这类噪声又可分成热噪声、散粒噪声等。

一般在图像处理技术中常见的噪声有:加性噪声、乘性噪声、量化噪声、“盐和胡椒”噪声等。

下面介绍两种主要的噪声。

2.1.1、高斯噪声(Gaussian noise)这种噪声主要来源于电子电路噪声和低照明度或高温带来的传感器噪声,也称为正态噪声,是在实践中经常用到的噪声模型。

高斯随机变量z 的概率密度函数(PDF)由下式给出:}2/)(ex p{2/1)(22σμσπ--=z z p其中, z 表示图像像元的灰度值;μ表示z 的期望;σ表示z 的标准差。

2.1.2、椒盐噪声(salt&pepper noise )主要来源于成像过程中的短暂停留和数据传输中产生的错误。

其PDF 为:⎪⎩⎪⎨⎧===其他0)(b z pba z pa z p如果b > a, 灰度值b 在图像中显示为一亮点,a 值显示为一暗点。

如果Pa 和图像 均不为零,在图像上的表现类似于随机分布图像上的胡椒和盐粉微粒,因此称为椒盐噪声。

当Pa 为零时,表现为“盐”噪声;当Pb 为零时,表现为“胡椒”噪声。

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

(2)图像平滑的方法 2.2.1空间域低通滤波1、均值滤波器均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个象素,构成一个滤波模板,即去掉目标象素本身)。

再用模板中的全体像素的平均值来代替原来像素值。

其表达式如下:∑∈=sn m n m f My x g ),(),(/1),(式中: x,y=0,1,2,…,N-1;s 为(x ,y )点领域中点的坐标的集合,但不包括(x ,y )点;M 为集合内坐标点的总数。

2、中值滤波器中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。

)},({),(),(t s g median y x f xyS y s ∈∧=其中g(s,t)为原图像,),(y x f ∧为处理后的图像,xy s为二维模板,通常为2*2,3*3区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。

2.2.2频域低通滤波在频域中,低频主要对应图像在平滑区域的总体灰度级分布,而高频对应图像的细节部分,如边缘和噪声。

因此,图像平滑可以通过衰减图像频谱中的高频部分来实现,这就建立了空间域图像平滑和频域低通滤波直接到的对应关系。

低通滤波平滑图像的系统框图如下所示:图2-1 图像频域低通滤波流程框图1.频域滤波的基本步骤:(1)计算原始图像f(x,y)的DFT ,得到F(u,v). (2)将频谱F(u,v)的零频点移动到频谱图的中心位置。

(3)计算滤波器函数H(u,v)与F(u,v)的乘积G(U,V)。

(4)将频谱G(u,v)的零频点移回到频谱图的左上角位置。

(5)计算上一步结果的傅里叶反变换g(x,y)。

(6)取g(x,y)的实部作为最终滤波后的图像。

2.理想低通滤波器(ILPF)如果图像的宽带为M ,高度为N ,那么理想低通滤波器可以形式化描述为:⎭⎬⎫⎩⎨⎧=≤-+->-+-022022])2()2[(,1])2()2[(,0),(D Nv M u D Nv M u v u H式中0D 是一个规定的非负的量,它叫做理想低通滤波器的截止频率。

理想低通滤波器在处理过程中会产生较严重的模糊和振铃现象。

3.布特沃斯低通滤波器(BLPF )截止频率位于距原点0D 处的n 阶布特沃斯低通滤波器(BLPF )的传递函数定义为:其中,2/122])2/()2/[(),(Q v P u v u D -+-=,P 为宽,Q 为高。

BLPF 与ILPF 不同,BLPF 传递函数并没有在通过频率和滤除频率之间给出明显截止的尖锐的不连续性。

因此它没有“振铃”现象发生,模糊程度减少,但从它的传递函数特性曲线H(u,v)可以看出,在它的尾部保留有较多的高频,所以对噪声的平滑效果还不如ILPF 。

4.高斯低通滤波器(G L P F )其传递函数表示为:222/),(),(σv u D ev u H -=对于相同的截止频率,GLPF 与二阶BLPF 相比,GLPF 的平滑效果稍微差一点,但GLPF 中没有振铃,这是实际中一个重要的特性,尤其是在任何类型的人工缺陷不可接受的情况下(例如医学成像)。

所以在要求严格控制低频和高频之间截止频率的过渡的情况下,BLPF是更合适的选择。

3. 图像平滑处理具体过程3.1系统构架程序运行的环境是windows平台,并选用MATLAB作为编程开发工具,MATLAB 是一种向量语言,它非常适合于进行图像处理。

3.2模拟噪声图像图像增强操作主要是针对图像的各种噪声而言的,为了说明图像处理中的滤波方法和用途,需要模拟数字图像的各种噪声来分析滤波效果。

MATLAB图像处理工具箱提供的噪声添加函数imnoise,它可以对图像添加一些典型的噪声。

其语法:J=imnoise(I,type)J=imnoise(I,type,parameters)其功能是:返回对原图像I添加典型噪声的图像J,参数type和parameters用于确定噪声的类型和相应的参数。

三种典型的噪声:type=’gaussian’时,为高斯噪声;type=’salt&pepper’时为椒盐噪声;type=’speckle’时为乘法噪声;图像数据读取函数imread从图像文件中读取图像数据。

其基本调用格式如下:I=imread(文件名,’图像文件格式’)其功能是:将文件名指定的图像文件读入I中。

I=imshow(A)其功能是显示图像A。

如下程序就实现了3种噪声污染了的图像:I=imread('lena_AdaptiveMedianFilter.bmp'); %读取图像I1=imnoise(I,'gaussian'); %加高斯噪声I2=imnoise(I,'salt & pepper',0.02); %加椒盐噪声I3=imnoise(I,'speckle'); %加乘性噪声subplot(2,2,1),imshow(I); %显示图像Ititle('源图像');subplot(2,2,2),imshow(I1);title('受高斯噪声污染的图像');subplot(2,2,3),imshow(I2);title('受盐椒噪声污染的图像');subplot(2,2,4),imshow(I3);title('受乘法噪声污染的图像');运行结果如下:图3-1噪声污染的图像结果分析:图3-1中受噪声污染的各图处理结果与源图像相比,图像有不同程度的模糊,其中受不同类型的噪声污染图像模糊程度不同。

3.3均值滤波法在MATLAB图像处理工具箱中,提供了imfilter函数用于实现均值滤波,imfilter的语法格式为:B=imfilter(A,H)其功能是,用H模板对图像A进行均值滤波,取平均值滤波模版为H1=1/9[1 1 1;1 1 1;1 1 1];H2=1/25[1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1];分别以这两个平均值滤波算子对图3-1中的四幅图像进行滤波操作。

取H1,程序如下:I=imread('lena_AdaptiveMedianFilter.bmp');I1=imnoise(I,'gaussian');I2=imnoise(I,'salt & pepper',0.02);I3=imnoise(I,'speckle');H1=ones(3,3)/9; %3×3领域模板J=imfilter(I,H1); %领域平均J1=imfilter(I1,H1);J2=imfilter(I2,H1);J3=imfilter(I3,H1);subplot(2,2,1),imshow(J);title('源图像滤波后');subplot(2,2,2),imshow(J1);title('受高斯噪声污染图滤波后');subplot(2,2,3),imshow(J2);title('受盐椒噪声污染图滤波后');subplot(2,2,4),imshow(J3);title('受乘法噪声污染图滤波后');运行结果如下:图3-2 经过平均值算子H1滤波后图像取H2,程序如下:I=imread('lena_AdaptiveMedianFilter.bmp');I1=imnoise(I,'gaussian');I2=imnoise(I,'salt & pepper',0.02);I3=imnoise(I,'speckle');H2=ones(5,5)/25; %5×5领域模板J=imfilter(I,H2); %领域平均J1=imfilter(I1,H2);J2=imfilter(I2,H2);J3=imfilter(I3,H2);subplot(2,2,1),imshow(J);title('源图像滤波后');subplot(2,2,2),imshow(J1);title('受高斯噪声污染图滤波后');subplot(2,2,3),imshow(J2);title('受盐椒噪声污染图滤波后');subplot(2,2,4),imshow(J3);title('受乘法噪声污染图滤波后');运行结果如图3-3:图3-3 经过平均值算子H2滤波后图像结果分析:把图3-2与图3-3的图像结果之间进行比较后可知,领域平均处理后,图像的噪声得到了抑制,但在此同时也使图像变得相对模糊,对高斯噪声的平滑效果比较好。

相关文档
最新文档