数字图像平滑处理
数字图像处置图像平滑和锐化

数字图像处理
21
CTArray< plex > CImageProcessing::Low_pass_filter( CTArray< plex > original_signal ){ long dimension = original_signal.GetDimension(); double threshold = 0; for( int index = 0; index < dimension; index ++ ) { double magnitude = sqrt( original_signal[ index ].m_re * original_signal[ index ].m_re + original_signal[ index ].m_im * original_signal[ index ].m_im ); if( magnitude > threshold ) threshold = magnitude; } threshold /= 100; for( int index = 0; index < dimension; index ++ ) { double magnitude = sqrt( original_signal[ index ].m_re * original_signal[ index ].m_re + original_signal[ index ].m_im * original_signal[ index ].m_im ); double eplon = 1.0 / sqrt( 1 + ( threshold / magnitude ) * ( threshold / magnitude ) ); original_signal[ index ].m_re *= eplon; original_signal[ index ].m_im *= eplon; } return original_signal;}
数字图像处理实验报告

目录实验一:数字图像的基本处理操作 (4):实验目的 (4):实验任务和要求 (4):实验步骤和结果 (5):结果分析 (8)实验二:图像的灰度变换和直方图变换 (9):实验目的 (9):实验任务和要求 (9):实验步骤和结果 (9):结果分析 (13)实验三:图像的平滑处理 (14):实验目的 (14):实验任务和要求 (14):实验步骤和结果 (14):结果分析 (18)实验四:图像的锐化处理 (19):实验目的 (19):实验任务和要求 (19):实验步骤和结果 (19):结果分析 (21)实验一:数字图像的基本处理操作:实验目的1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用;2、实现图像的读取、显示、代数运算和简单变换。
3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。
:实验任务和要求1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。
2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。
3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。
4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的对应关系。
:实验步骤和结果1.对实验任务1的实现代码如下:a=imread('d:\');i=rgb2gray(a);I=im2bw(a,;subplot(1,3,1);imshow(a);title('原图像');subplot(1,3,2);imshow(i);title('灰度图像');subplot(1,3,3);imshow(I);title('二值图像');subplot(1,3,1);imshow(a);title('原图像');结果如图所示:图原图及其灰度图像,二值图像2.对实验任务2的实现代码如下:a=imread('d:\');A=imresize(a,[800 800]);b=imread('d:\');B=imresize(b,[800 800]);Z1=imadd(A,B);Z2=imsubtract(A,B);Z3=immultiply(A,B);Z4=imdivide(A,B);subplot(3,2,1);imshow(A);title('原图像 A'); subplot(3,2,2);imshow(B);title('原图像 B'); subplot(3,2,3);imshow(Z1);title('加法图像'); subplot(3,2,4);imshow(Z2);title('减法图像'); subplot(3,2,5);imshow(Z3);title('乘法图像'); subplot(3,2,6);imshow(Z2);title('除法图像');结果如图所示:3.对实验任务3的实现代码如下:s=imread('d:\');i=rgb2gray(s);i=double(i);j=fft2(i);k=fftshift(j); %直流分量移到频谱中心I=log(abs(k)); %对数变换m=fftshift(j); %直流分量移到频谱中心RR=real(m); %取傅里叶变换的实部II=imag(m); %取傅里叶变换的虚部A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=circshift(s,[800 450]);b=rgb2gray(b);b=double(b);c=fft2(b);e=fftshift(c);I=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);title('原图像');subplot(2,2,2);imshow(uint8(b));title('平移图像');subplot(2,2,3);imshow(A);title('离散傅里叶变换频谱');subplot(2,2,4);imshow(B);title('平移图像离散傅里叶变换频谱');结果如图所示:4.对实验任务4的实现代码如下:s=imread('d:\');i=rgb2gray(s);i=double(i);j=fft2(i);k=fftshift(j);I=log(abs(k));m=fftshift(j);RR=real(m);II=imag(m);A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=imrotate(s,-90);b=rgb2gray(b);b=double(b);c=fft2(b);e=fftshift(c);I=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);title('原图像');subplot(2,2,2);imshow(uint8(b));title('平移图像');subplot(2,2,3);imshow(A);title('离散傅里叶频谱');subplot(2,2,4);imshow(B);title('平移图像离散傅里叶频谱');结果如图所示::结果分析对MATLAB软件的操作开始时不太熟悉,许多语法和函数都不会使用,写出程序后,调试运行,最开始无法显示图像,检查原因,是有些标点符号没有在英文状态下输入和一些其他的细节,学会了imread(),imshow(),rgb2gray()等函数。
数字图像处理-图像平滑和锐化变换处理

图像平滑和锐化变换处理一、实验容和要求1、灰度变换:灰度拉伸、直方图均衡、伽马校正、log变换等。
2、空域平滑:box、gauss模板卷积。
3、频域平滑:低通滤波器平滑。
4、空域锐化:锐化模板锐化。
5、频域锐化:高通滤波器锐化。
二、实验软硬件环境PC机一台、MATLAB软件三实验编程及调试1、灰度变换:灰度拉伸、直方图均衡、伽马校正、log变换等。
①灰度拉伸程序如下:I=imread('kids.tif');J=imadjust(I,[0.2,0.4],[]);subplot(2,2,1),imshow(I);subplot(2,2,2),imshow(J);subplot(2,2,3),imhist(I);subplot(2,2,4),imhist(J);②直方图均衡程序如下:I=imread('kids.tif');J=histeq(I);Imshow(I);Title('原图像');Subplot(2,2,2);Imshow(J);Title('直方图均衡化后的图像') ;Subplot(2,2,3) ;Imhist(I,64);Title('原图像直方图') ;Subplot(2,2,4);Imhist(J,64) ; Title('均衡变换后的直方图') ;③伽马校正程序如下:A=imread('kids.tif');x=0:255;a=80,b=1.8,c=0.009;B=b.^(c.*(double(A)-a))-1;y=b.^(c.*(x-a))-1;subplot(3,2,1);imshow(A);subplot(3,2,2);imhist(A);imshow(B);subplot(3,2,4);imhist(B);subplot(3,2,6);plot(x,y);④log变换程序如下:Image=imread('kids.tif');subplot(1,2,1);imshow(Image);Image=log(1+double(Image)); subplot(1,2,2);imshow(Image,[]);2、空域平滑:box、gauss模板卷积。
数字图像处理实验报告

数字图像处理实验报告光信13-2班2013210191韩照夏数字图像处理实验报告实验一数字图像空间域平滑一、实验目的掌握图像空间域平滑的原理和程序设计;观察对图像进行平滑增强的效果。
二、实验设备计算机,Matlab程序平台。
三、实验原理图像平滑处理的目的是改善图像质量和抽出对象特征。
任何一幅未经处理的原始图像,都存在着一定程度的噪声干扰。
噪声恶化了图像质量,使图像模糊,甚至淹没特征,给分析带来困难。
消除图像噪声的工作称为图像平滑或滤波。
针对不同噪声源(如光栅扫描、底片颗粒、机械元件、信道传输等)引起的不同种类噪声(如加性噪声、乘性噪声、量化噪声等),平滑方法也不同。
平滑可以在空间域进行,也可以在频率域进行。
1.局部平均法局部平滑法是一种直接在空间域上进行平滑处理的技术。
假设图像由许多灰度恒定的小块组成,相邻象素间存在很高的空间相关性,而噪声则是统计独立的。
因此,可用邻域内各象素的灰度平均值代替该象素原来的灰度值,实现图像的平滑。
对图像采用3×3的邻域平均法,其作用相当于用以下模板与图像进行卷积运算。
2. 超限象素平滑法 对邻域平均法稍加改进,可导出超限象素平滑法。
其原理是将f(x,y)和邻域平均g(x,y)差的绝对值与选定的阈值进行比较,根据比较结果决定点(x,y )的最后灰度g ´(x,y)。
其表达式为3. 二维中值滤波中值滤波就是用一个奇数点的移动窗口, 将窗口中心点的值用窗口内各点的中值代替。
二维中值滤波可由下式表示常用的窗口有:四、实验步骤1.实验准备:打开计算机,进入Matlab 程序界面。
2.输入图像空间域平滑处理程序,程序如下:⎩⎨⎧>-= ),(),(),( ),,(),('其他,当y x f T y x g y x f y x g y x g )},({),(y x f Med y x g A=程序1.1 图像平滑处理clear;clc;I=imread('lena.jpg');subplot(3,2,1);imshow(I);title('原图像');I1=imnoise(I,'salt & pepper',0.02);subplot(3,2,2);imshow(I1);title('对I加椒盐噪声的图像');h2=fspecial('average',[3 3]);I2=imfilter(I1,h2,'replicate');subplot(3,2,3);imshow(I2);title('3×3邻域平滑');h3=fspecial('average',[5 5]);I3=imfilter(I1,h3,'replicate');subplot(3,2,4);imshow(I3);title('5×5邻域平滑');I4=I1;I4((abs(I1-I2))>64)=I2((abs(I1-I2))>64);subplot(3,2,5);imshow(I4);title('3×3超限象素平滑(T=64)'); I5=I1;I5((abs(I1-I3))>48)=I3((abs(I1-I3))>48);subplot(3,2,6);imshow(I5);title('5×5超限象素平滑(T=48)');程序1.2 图像平均平滑与中值滤波clear;clc;I=imread('lena.jpg');subplot(3,3,1);imshow(I);title('原图像');I1=imnoise(I,'gaussian',0.02);subplot(3,3,2);imshow(I1);title('高斯噪声');I2=imnoise(I,'salt & pepper',0.02);subplot(3,3,3);imshow(I1);title('椒盐噪声');h1=fspecial('average',[3 3]);I3=imfilter(I1,h1,'replicate');subplot(3,3,4);imshow(I3);title('对I1 3×3邻域平滑');h2=fspecial('average',[3 3]);I4=imfilter(I2,h2,'replicate');subplot(3,3,5);imshow(I4);title('对I2 3×3邻域平滑');I5=medfilt2(I1,[5 5]);subplot(3,3,6);imshow(I5);title('对I1 5×5中值滤波');I6=medfilt2(I2,[5 5]);subplot(3,3,7);imshow(I6);title('对I2 5×5中值滤波');3.运行图像处理程序,并保存处理结果图像。
数字信号平滑处理

数字信号平滑处理摘要:一、数字信号平滑处理简介1.数字信号平滑处理的意义2.数字信号平滑处理的方法二、常见的数字信号平滑处理算法1.移动平均法2.加权移动平均法3.指数加权移动平均法4.中值滤波法5.高斯滤波法三、数字信号平滑处理的应用领域1.信号处理2.图像处理3.音频处理四、数字信号平滑处理的未来发展趋势1.算法优化2.应用拓展正文:数字信号平滑处理是一种在数字信号处理中广泛应用的技术,通过对数字信号进行平滑处理,可以有效地降低噪声干扰,提高信号质量,为后续的信号分析、处理和应用提供可靠的数字信号基础。
本文将对数字信号平滑处理的方法、常见的平滑处理算法以及应用领域进行详细介绍,并展望未来的发展趋势。
数字信号平滑处理的方法主要包括移动平均法、加权移动平均法、指数加权移动平均法、中值滤波法和高斯滤波法等。
其中,移动平均法是一种简单直观的平滑处理方法,通过计算一段时间内信号的平均值来实现平滑处理。
加权移动平均法则给不同的数据点赋予不同的权重,使得近期数据点对平均值的影响更大。
指数加权移动平均法是加权移动平均法的改进,通过指数函数来调整权重,能够更好地反映近期信号的变化趋势。
中值滤波法是一种非线性滤波方法,通过选取一段时间内信号的中间值来实现平滑处理,能够有效地去除脉冲噪声。
高斯滤波法是一种线性滤波方法,通过应用高斯核函数对信号进行卷积,实现平滑处理,广泛应用于图像处理领域。
数字信号平滑处理在信号处理、图像处理和音频处理等领域具有广泛的应用。
在信号处理领域,平滑处理可以降低噪声干扰,提高信号质量,为后续的信号分析、处理和应用提供可靠的数字信号基础。
在图像处理领域,平滑处理可以去除图像噪声,提高图像的清晰度,为图像识别、图像压缩和图像增强等后续处理提供高质量的图像数据。
在音频处理领域,平滑处理可以降低音频噪声,提高音频质量,为音频识别、音频合成和音频增强等后续处理提供高质量的音频数据。
未来,数字信号平滑处理领域还有很大的发展空间。
数字图像处理试题及答案

数字图像处理试题及答案一、选择题1. 数字图像处理是指对图像进行数字化表示,并在计算机中进行处理和分析。
下面哪个选项是数字图像处理的主要目标?A. 提高图像的分辨率B. 压缩图像的存储空间C. 增强图像的质量D. 以上都是答案:D. 以上都是2. 在数字图像处理中,下面哪种滤波器用于平滑图像并降低图像中噪声的影响?A. 锐化滤波器B. 高通滤波器C. 低通滤波器D. 带通滤波器答案:C. 低通滤波器3. 在数字图像处理中,下面哪个选项描述了图像的亮度?A. 图像的红色通道值B. 图像的绿色通道值C. 图像的蓝色通道值D. 图像的灰度值答案:D. 图像的灰度值4. 数字图像处理中的阈值处理常用于图像分割,下面哪个选项描述了图像分割的目标?A. 将图像分成相似的区域B. 将图像转化为黑白二值图像C. 将图像进行几何变换D. 将图像进行色彩的增强答案:B. 将图像转化为黑白二值图像5. 数字图像处理中的直方图均衡化是一种用于增强图像对比度的方法。
下面哪个选项描述了直方图均衡化的基本原理?A. 将像素值映射到一个更大的范围B. 将像素值映射到一个更小的范围C. 根据像素值的概率分布进行映射D. 根据像素值的灰度级别进行映射答案:C. 根据像素值的概率分布进行映射二、简答题1. 请简要描述数字图像处理中的图像平滑技术,并举例说明。
答:图像平滑技术是一种降低图像中噪声和细节的方法。
常用的图像平滑技术包括均值滤波、中值滤波和高斯滤波等。
以均值滤波为例,该方法通过取邻域像素的平均值来平滑图像。
具体而言,对于每个像素点,将其周围的像素灰度值取平均后作为新的像素值。
这样可以减小图像中的噪声,并使图像变得更加平滑。
例如,对于一张包含椒盐噪声的图像,使用均值滤波可以去除部分噪声,提高图像的观看效果。
2. 请简要说明数字图像处理中的图像增强技术,并举例说明。
答:图像增强技术是一种通过调整图像的亮度、对比度和色彩等参数来改善图像质量的方法。
数字图形处理 实验 图像的平滑与锐化

XXXXXXXX 大学(数字图形处理)实验报告 实验名称 图像的平滑与锐化 实验时间 年 月 日专 业 姓 名 学 号 预 习 操 作 座 位 号 教师签名 总 评一、实验目的:1.了解图像平滑的邻域平均和中值滤波以及锐化的梯度法和Sobel 法的基本思想;2.掌握图像平滑的邻域平均和中值滤波以及锐化的梯度法和Sobel 法的基本步骤;二、实验原理:1. 邻域平均法的思想是用像素及其指定邻域内像素的平均值或加权平均值作为该像素的新值,以便去除突变的像素点,从而滤除一定的噪声。
邻域平均法的数学含义可用下式表示:∑∑==⎪⎭⎫ ⎝⎛=mn i imn i i i w z w y x g 11),( (1) 上式中:i z 是以),(y x 为中心的邻域像素值;i w 是对每个邻域像素的加权系数或模板系数; m n 是加权系数的个数或称为模板大小。
邻域平均法中常用的模板是:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡*=11111111191Box T (2) 为了解决邻域平均法造成的图像模糊问题,采用阈值法(又叫做超限邻域平均法,如果某个像素的灰度值大于其邻域像素的平均值,且达到一定水平,则判断该像素为噪声,继而用邻域像素的均值取代这一像素值;否则,认为该像素不是噪声点,不予取代),给定阈值0T :⎩⎨⎧≥-<-=00),(),(),(),(),(),(),(T y x g y x f y x g T y x g y x f y x f y x h (3) (3)式中,),(y x f 是原始含噪声图像,),(y x g 是由(1)式计算的平均值,),(y x h 滤波后的像素值。
2.中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。
方法是去某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。
《数字图像处理及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、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图像增强之平滑噪声引言有些图像是通过扫描仪扫描输入、或传输通道传输过来的。
图像中往往包含有各种各样的噪声。
这些噪声一般是随机产生的,因此具有分布和大小不规则性的特点。
这些噪声的存在直接影响着后续的处理过程,使图像失真。
图像平滑就是针对图像噪声的操作,其主要作用是为了消除噪声,图像平滑的常用方法是采用均值滤波或中值滤波,均值滤波是一种线性空间滤波,它用一个有奇数点的掩模在图像上滑动,将掩模中心对应像素点的灰度值用掩模内所有像素点灰度的平均值代替,如果规定了在取均值过程中掩模内各像素点所占的权重,即各像素点所乘系数,这时就称为加权均值滤波;中值滤波是一种非线性空间滤波,其与均值滤波的区别是掩模中心对应像素点的灰度值用掩模内所有像素点灰度值的中间值代替。
1.实验目的1)掌握图像空间域平滑滤波的基本定义及目的。
2)理解空间域平滑滤波的基本原理及方法。
3)掌握进行图像空间域平滑滤波的方法。
2.实验原理2.1 空间域平滑滤波基本原理空间域滤波是在图像空间中借助模板进行领域操作,处理图像每一个都是根据模板对输入像素相应领域内的像素值进行计算得到的。
空间域滤波器根据功能主要分为平滑滤波器和锐化滤波器。
平滑可用低通来实现,平滑的目的可分为两类:一类是模糊,目的是在提取较大的目标前去除太小的细节或将目标内的小肩端连接起来;另一类是消除噪声。
2.2 空间域平滑滤波器最常用的平滑滤波器有均值滤波器和中值滤波器。
均值滤波器是线性平滑滤波器,其所有系数都是正数对3×3模板来说,最简单的是取所有系数为1,为了保持图像仍然在原来图像的灰度值范围内,模块与像素领域的乘积都要除以9。
中值滤波器是一种常用的非线性平滑滤波器,其原理与均值滤波器原理类似,但计算的不是加权求和,而是把领域中的图像的像素按灰度级进行排序,然后选择组的中间值作为输出像素值。
线性滤波输出图像的值等于输入图像滤波后值的局部平均,各个项具有相同的权。
下面是平滑窗口分别为矩形和圆形的情况。
⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=1111111111111111111111111251],[k j h rect ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=011101111111111111110111211],[k j h circ 对一些图像进行线性滤波可以去除图像中某些类型的噪声,如采用邻域平均法的均值滤波器就非常适用于去除通过扫描得到的图像中的颗粒噪声。
邻域平均法是空间域平滑噪声技术。
用一像素邻域内各像素灰度平均值来代替该像素原来的灰度,即是邻域平均技术。
另外,频域处理的基础是频域滤波,例如,理想的低通滤波器:其中[]2122)2/()2/(),(N v M u v u D -+-=。
%线性平滑滤波I=imread('f:/sunyanz.jpg');J=imnoise(I,'salt & pepper',0.02); subplot(221),imshow(I) title('原图像')subplot(222),imshow(J) title('添加椒盐噪声图像')K1=filter2(fspecial('average',3),J)/255;%应用3*3邻域窗口法 subplot(223),imshow(K1)title('3x3窗的邻域平均滤波图像')K2=filter2(fspecial('average',7),J)/255;%应用7*7邻域窗口法 subplot(224),imshow(K2)title('7x7窗的邻域平均滤波图像')如图:⎩⎨⎧≥≤=0),(0),(1),(D v u D D v u D v u H原图3*3滤波9*9滤波原图像添加椒盐噪声图像3x3窗的邻域平均滤波图像7x7窗的邻域平均滤波图像%利用低通邻域平均模板进行平滑 I=imread('f:/sunyanz.jpg'); I=rgb2gray(I); subplot(1,3,1); imshow(I); title('原图');J=fspecial('average'); J1=filter2(J,I)/255; subplot(1,3,2); imshow(J1);title('3*3滤波');K=fspecial('average',9); K1=filter2(K,I)/255; subplot(1,3,3); imshow(K1);title('9*9滤波');如图:分析:对以上两种平滑滤波,其优势:实现简单,去噪效果明显。
不足:去噪的同时会导致结果图像边缘位置的改变和细节模糊甚至丢失。
4.3.2 非线性滤波中值滤波是一种最常用的图像增强技术,是非线性滤波。
对椒盐噪声有很好的去噪效果。
下图是加高斯噪声后,中值滤波和平均滤波的滤波效果对比:%中值滤波和平均滤波I=imread('f:/sunyanz.jpg');I=rgb2gray(I);J=imnoise(I,'gaussian',0,0.01);subplot(2,2,1);imshow(I);title('原图');subplot(2,2,2);imshow(J);title('noise');K=fspecial('average',5);K1=filter2(K,J)/255;subplot(2,2,3);imshow(K1);title('平均滤波');L=medfilt2(J,[3 5]);subplot(2,2,4);imshow(L);title('中值滤波');原图添加椒盐噪声图像平均滤波中值滤波如图可见,对于高斯噪声,均值滤波效果比中值滤波效果好。
原因:(1)高斯噪声是幅值近似正态分布,但分布在每点像素上。
(2)因为图像中的每点都是污染点,所以中值滤波选不到合适的干净点。
(3)因为正态分布的均值为0,所以均值滤波可以消除噪声。
(实际上只能减弱,不能消除。
)但对于椒盐噪声,中值滤波效果比均值滤波效果好。
原因:(1)椒盐噪声是幅值近似相等但随机分布在不同位置上,图像中有干净点也有污染点。
(2)中值滤波是选择适当的点来替代污染点的值,所以处理效果好。
(3)因为噪声的均值不为0,所以均值滤波不能很好地去除噪声点。
中值滤波是基于一个移动窗口并计算输入图像在窗口内的像素亮度值的中值作为输出图像窗口中心的像素值而产生的。
给定的图像f(x,y)中的每一个点(m,n ),取其领域s 。
设s 含有M 个像素{a1,a2,⋯,aM},将其按大小排序,若M 是奇数时,则位于中间的那个象素值就是修改后图像g(x,y)在点(m,n )处的像素值;若M 是偶数则取中间两个象素的平均值作为修改后图像g(x,y)在点(m,n )处的象素值。
我们在这里先人为的加上一些噪声,然后在matlab 中实现中值滤波的效果图如下:%二维中值滤波 hood=3;[P,map]=imread('f:/suanyanz.jpg'); I=rgb2gray(P); imshow(I,map);noisy=imnoise(I,'salt & pepper',0.05); %加入强度为0.05的椒盐噪声subplot(221);原图添加椒盐噪声图像平均滤波中值滤波imshow(noisy,map);title('加入椒盐噪声');filtered1=medfilt2(noisy,[hood hood]);%3×3窗口二维中值滤波subplot(222);imshow(filtered1,map);title('3×3窗口');hood=5;filtered2=medfilt2(noisy,[hood hood]); %5×5窗口二维中值滤波subplot(223);imshow(filtered2,map);title('5×5窗口');hood=7;filtered3=medfilt2(noisy,[hood hood]); %7×7窗口二维中值滤波subplot(224);imshow(filtered3,map);title('7×7窗口');figure;imshow(I);title('原图');比较经过加入椒盐噪声的图像和经过中值滤波的图像,可以发现,图像的噪声点被去除(跟也领域有关,此处不想解);但是比较原始图像和经过滤波的图像后会发现,图像的边缘稍微的变得模糊,这是平滑算法不可避免的缺点。
分析:优势:去噪效果明显,并且能够较好的保持图像边缘位置和细节。
不足:非线性滤波算法的实现相对线性滤波比较困难。
总结:平滑技术用于平滑图像中的噪声。
平滑噪声可以在空间域中进行,基本方法是求像素灰度的平均或中值。
为了既平滑噪声又保护图像信号,也有一些改进的技术,比如在频域中运用低通滤波技术。
当然,图像增强处理还有许多方法,基于空域的算法分为点运算算法和邻域去噪算法。
点运算算法即灰度级校正、灰度变换和直方图修正等,目的或使图像成像均匀,或扩大图像动态范围,扩展对比度。
邻域增强算法分为图像平滑和锐化两种。
平滑一般用于消除图像噪声,但是也容易引起边缘的模糊。
常用算法有均值滤波、中值滤波。
锐化的目的在于突出物体的边缘轮廓,便于目标识别。
常用算法有梯度法、算子、高通滤波、掩模匹配法、统计差值法等。