实验三 图像的滤波及增强
数字图像处理实验报告
数字图像处理实验报告实验一数字图像处理编程基础一、实验目的1. 了解MATLAB图像处理工具箱;2. 掌握MATLAB的基本应用方法;3. 掌握MATLAB图像存储/图像数据类型/图像类型;4. 掌握图像文件的读/写/信息查询;5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法;6. 编程实现图像类型间的转换。
二、实验内容1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。
2. 运行图像处理程序,并保存处理结果图像。
三、源代码I=imread('cameraman.tif')imshow(I);subplot(221),title('图像1');imwrite('cameraman.tif')M=imread('pout.tif')imview(M)subplot(222),imshow(M);title('图像2');imread('pout.bmp')N=imread('eight.tif')imview(N)subplot(223),imshow(N);title('图像3');V=imread('circuit.tif')imview(V)subplot(224),imshow(V);title('图像4');N=imread('C:\Users\Administrator\Desktop\1.jpg')imshow(N);I=rgb2gary(GRB)[X.map]=gary2ind(N,2)RGB=ind2 rgb(X,map)[X.map]=gary2ind(I,2)I=ind2 gary(X,map)I=imread('C:\Users\dell\Desktop\111.jpg');subplot(231),imshow(I);title('原图');M=rgb2gray(I);subplot(232),imshow(M);[X,map]=gray2ind(M,100);subplot(233),imshow(X);RGB=ind2rgb(X,map);subplot(234),imshow(X);[X,map]=rbg2ind(I);subplot(235),imshow(X);四、实验效果实验二 图像几何变换实验一、实验目的1.学习几种常见的图像几何变换,并通过实验体会几何变换的效果;2.掌握图像平移、剪切、缩放、旋转、镜像等几何变换的算法原理及编程实现;3.掌握matlab 编程环境中基本的图像处理函数。
实验三_数字图像处理空域滤波
实验三空域滤波一实验目的1了解空域滤波的方法。
2掌握几种模板的基本原理。
二实验条件PC微机一台和MATLAB软件。
三实验内容1使用函数fspecial( ) 生成几种特定的模板。
2使用函数imfilter( ) 配合模板对图象数据进行二维卷积。
3比较各种滤波器的效果。
四实验步骤空域滤波一般分为线性滤波和非线性滤波。
空域滤波器根据功能分为平滑滤波器和锐化滤波器。
1)平滑空间滤波:平滑的目的有两种:一是模糊,即在提取较大的目标前去除太小的细节或将目标内的小间断连接起来;另一种是消除噪声。
线性平滑(低通)滤波器:线性平滑空域滤波器的输出是包含在滤波掩膜邻域内像素的简单平均值。
线性平滑滤波器也称为均值滤波器,这种滤波器的所有系数都是正数,对3*3的模板来说,最简单的是取所有系数为1,为了保持输出图像仍然在原来图像的灰度值范围内,模板与像素邻域的乘积都要除以9。
a用h=fspecial(‘average’) 得到的h 为3×3的邻域平均模板,然后用h来对图象lenna.gif进行平滑处理。
>> x=imread('lenna.gif');h=fspecial('average');y=imfilter(x,h);imshow(x);title('原始图像');subplot(1,2,2);imshow(y);title('均值滤波后图像')实验结果如图:b 把模板大小依次改为7×7,9×9和11×11,观察其效果有什么不同?>>x=imread('lenna.gif');subplot(1,4,1);imshow(x);title('原始图像');h=fspecial('average',7);y=imfilter(x,h);subplot(1,4,2);imshow(y);title('模板大小7*7的图像');h1=fspecial('average',9);y1=imfilter(x,h1);subplot(1,4,3);imshow(y1);title('模板大小9*9的图像');h2=fspecial('average',11);y2=imfilter(x,h2);subplot(1,4,4);title('模板大小11*11的图像')比较效果:造成图像的模糊,n选取的越大,模糊越严重。
实验三 邻域平均法滤波
数字图像处理实验报告实验三邻域平均法滤波学号姓名日期2013.05.11实验三 邻域平均法滤波一、实验内容选取噪声较明显的图像,分别采用3*3、5*5、7*7的模板进行邻域平均法滤波,并比较滤波效果。
二、实验步骤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、 源程序并附上注释。
A=imread('1.jpg');B=rgb2gray(A);figure; imshow(B); title('原始图象');H=imnoise(B,'gaussian');figure; imshow(H); title('高斯噪声');Q=imnoise(B,'salt & pepper');figure; imshow(Q); title('椒盐噪声');%G=fspecial('average',3*3);%D=imfilter(H,G);%figure; imshow(D); title('高斯噪声图片平均模板');%L=fspecial('average',5*5);%S=imfilter(H,L);%figure; imshow(S); title('高斯噪声图片平均模板1');%W=fspecial('average',7*7);%O=imfilter(H,W);%figure; imshow(O); title('高斯噪声图片平均模板2');%M=fspecial('gaussian',3*3);%E=imfilter(Q,M);%figure; imshow(E); title('椒盐噪声图片高斯模板');%N=fspecial('gaussian',5*5);%K=imfilter(Q,N);%figure; imshow(K); title('椒盐噪声图片高斯模板1');%Z=fspecial('gaussian',7*7);%J=imfilter(Q,Z);%figure; imshow(J); title('椒盐噪声图片高斯模板2');%R=fspecial('gaussian',3*3);%T=imfilter(H,R);%figure; imshow(T); title('高斯噪声图片高斯模板');%X=fspecial('gaussian',5*5);%V=imfilter(H,X);%figure; imshow(V); title('高斯噪声图片高斯模板1');%U=fspecial('gaussian',7*7);%P=imfilter(H,U);%figure; imshow(P); title('高斯噪声图片高斯模板2');M=fspecial('average',3*3);E=imfilter(Q,M);figure; imshow(E); title('3*3平均模板');N=fspecial('average',5*5);K=imfilter(Q,N);figure; imshow(K); title('5*5平均模板');Z=fspecial('average',7*7);J=imfilter(Q,Z);figure; imshow(J); title('7*7平均模板');%C=medfilt2(Q);%figure; imshow(C); title('椒盐噪声图片中值滤波处理'); %M=medfilt2(H);%figure; imshow(M); title('高斯噪声图片中值滤波处理');3.程序运行结果比较。
遥感图像的增强处理
目的:通过上机操作,掌握彩色变换增强,空间域增强,频率域增强,多光谱变换增强等几种遥感图像增强处理的过程和方法,加深对遥感图像增强处理的理解。
实验内容:彩色合成;对比度变换增强;空间滤波增强;频率域增强;图像运算;主成分变换。
一、彩色合成
根据加色法彩色合成原理,选择遥感图像的三个波段,分别赋予红、绿、蓝三种原色,然后将这三个波段叠加,构成彩色合成图像。
锐化:interpreter—spatical enhancement—convolution(索伯尔)以T1为例。 New为自己新定义一个模板,在Xsize与Ysize中定义,以默认的3为例,在窗口中的行列中输入T1(突出线状地物,为水平方向线性地物)点file中的librarian中的name中命名“suoboer”点save后close,发现自定义的suoboer已出现 在convolution窗口中的kernel下,点击suoboer,再在output file中命名。
(1)索伯尔梯度
1 2 1 -1 0 1
T1= 0 0 0 T2= -2 0 2
-1-2-1 -1 0 1
(2)拉普拉斯算法(有利于提取边缘信息)
0 1 0
T(m,n)=1-4 1(同时突出横、纵向,但边界是断断续续
标准假彩色合成:
TM2(绿波段)赋予蓝
TM3(红波段)赋予绿
TM4(近红外波段)赋予红;
步骤:配准--------合成
空间位置上配准(通过几何校正进行配准)
做一标准假彩色合成(选影像tm2、3、4)
首先将tm2、3、4打开看是否能直接合成(投影坐标是否一样,若不一样则需配准后才能合成)
ENVI实验三-四
实验三波段组合计算及图像增强在本专题中,以ETM数据为对象,介绍在图像处理过程中的波段组合方式,波段之间的运算方式,数据的拉伸及增强处理过程。
(1)打开影像1选择file →open image file,打开can_tmr.img,点击打开,影像就出现在可用波段例表中。
2 在可用波段列表中,点击RGB Color,选择R(4)G(5)B(3)三个波段来进行波段显示。
3 点击Load RGB,一幅假彩色图像就显示在影像窗口中。
(2)波段组合1 在显示的影像中,只用了can_tmr.img文件的三个波段,而文件有6个波段,在这里,可以尝试从6个波段当中,选取3个波段来组合,并比较不同波段组合之间的图像显示效果。
2 在可用波段列表中,点击RGB Color,选择R(7)G(4)B(1)三个波段来进行波段显示。
3 在可用波段列表中,点击Display#1,在下拉菜单中,选择New display,点击Load RGB,一幅真彩色图像就显示在影像窗口中。
【截图一张,】4 动态链接比较前后两幅影像的效果,在主影像窗口中,选择tools →link →link displays,在link displays对话框中,点击ok,两幅影像就链接起来了。
5 在可用波段列表中,选择其余的波段组合方式,并加以比较。
(2)波段运算Band math功能为用户提供了一个灵活的图像处理工具,在Band math对话框中,可以实现不同波段之间的加减乘除等运算。
在这里还是为对象进行波段运算。
1在主菜单栏中,选择Basic Tools →Band math。
将出现band math对话框。
图6.2 Band math对话框3 在enter an expression的文本框中,输入需要进行波段计算的IDL (Interactive Data Language)表达式,使用变量代替波段名或文件名,变量名必须以字符“b”或“B”开头,后面跟着5个以内的数字字符。
关于图形图像处理实训报告总结【九篇】
关于图形图像处理实训报告总结【九篇】实训报告总结:图形图像处理实训图形图像处理实训是计算机科学与技术专业的基础课程之一。
通过本次实训课程,我深入了解了图形图像处理的基本概念、方法和技术,并通过实际操作来提升了自己的实践能力。
下面是对本次实训的九篇报告总结:1. 实验一:图像读取与显示本次实验主要是学习如何读取和显示图像,以及使用Matplotlib库进行图像展示。
通过实验,我掌握了图像读取和显示的基本方法,并学会了基本的图像处理操作。
2. 实验二:图像的灰度变换实验二主要是学习图像的灰度变换,包括线性变换和非线性变换。
我学会了如何使用不同的灰度变换函数来调整图像的亮度和对比度,进一步提升图像的质量。
3. 实验三:图像的空间域滤波本次实验主要是学习图像的空间域滤波技术,包括均值滤波、中值滤波和高斯滤波等。
通过实验,我掌握了不同滤波方法的原理和实现方式,并学会了如何选择合适的滤波方法来降噪和模糊图像。
4. 实验四:图像的频域滤波实验四主要是学习图像的频域滤波技术,包括傅里叶变换和频域滤波等。
通过实验,我了解了傅里叶变换的原理和应用,并学会了如何使用频域滤波来实现图像的锐化和平滑。
5. 实验五:图像的形态学处理本次实验主要是学习图像的形态学处理技术,包括腐蚀、膨胀、开运算和闭运算等。
通过实验,我学会了如何使用形态学操作来改变图像的形状和结构,进一步改善图像的质量。
6. 实验六:图像的边缘检测实验六主要是学习图像的边缘检测技术,包括Sobel算子、Laplacian算子和Canny算子等。
通过实验,我了解了不同边缘检测方法的原理和应用,并学会了如何使用边缘检测来提取图像的轮廓和特征。
7. 实验七:图像的分割与聚类本次实验主要是学习图像的分割与聚类技术,包括阈值分割、区域生长和K均值聚类等。
通过实验,我掌握了不同分割与聚类方法的原理和应用,并学会了如何使用分割与聚类来识别和分析图像中的目标和区域。
8. 实验八:图像的特征提取与描述子实验八主要是学习图像的特征提取和描述子技术,包括尺度不变特征变换(SIFT)和方向梯度直方图(HOG)等。
实验报告3:图像的线性与非线性空间滤波
实验报告3:图像的线性与非线性空间滤波一.浮雕效果的实现方式----线性滤波1.浮雕效果的原理描述实现图像浮雕效果的原理是将图像上每个像素点与其对角线的像素点形成差值,使相似颜色值淡化,不同颜色值突出,将图像中灰度值变换较大的部分的像素突出出来,并将灰度值变换不大的部分淡化,从而产生纵深感,达到类似浮雕的效果。
而产生浮雕效果的函数是线性滤波函数filter2(),该函数是一个对二维图像使用的线性滤波器;使用该函数时输入一个算子模块,并生成卷积算子,通过选择合适的滤波算子就能使得图像产生近似于相似色块内对比度加强的浮雕效果。
具体的做法是取主对角线除右下角外的各点之和的平均值,减去右下角点的值,再加上填充背景色,再加上一个背景常数(一般为128)而成,会形成类似浮雕的效果。
2.浮雕特效的效果对比:原图:对比图:、可以看出,原图作为一副彩色图片,其颜色分明的部分的轮廓被很好地保留了下来,并加强了对比度。
本图片右下角有水印,因此水印作为外框黑色填充黄色的图形,被和背景叠加在了一起,并且边界对比度也得到了加强,然而原图是彩色图,画出的浮雕图形是黑白的,因为灰度图像显示彩色图像的浮雕效果更有真实感和立体感。
3.源代码:YT=imread(‘yuantu.jpg’);R=YT(:,:,1);G=YT(:,:,2);B=YT(:,:,3);h=[10-1;40-4;10-1];JR1=filter2(h,R);JG1=filter2(h,G);JB1=filter2(h,B);k=[410;10-1;0-1 -4];JR2=filter2(k,R);JG2=filter2(k,G);JB2=filter2(k,B);JR=JR1+JR2;JG=JG1+JG2;JB=JB1+JB2;J=JR+JG+JB;subplot(1,2,1),imshow(YT),title(‘原图’);subplot(1,2,2),imshow(J),title(‘浮雕效果图’);4.代码解释:代码首先用imread函数将图像写入,然后利用(x,y,1/2/3)的矩阵读取原图每个像素的RGB三个颜色的像素值。
数字图像处理 实验报告(完整版)
数字图像处理实验一 MATLAB数字图像处理初步一、显示图像1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;实验结果如下图:源代码:>>I=imread('lily.tif')>> whos I>> imshow(I)二、压缩图像4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。
7.用imread()读入图像Sunset.jpg和Winter.jpg;8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小;9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。
其中9的实验结果如下图:源代码:4~6(接上面两个) >>I=imread('lily.tif')>> imfinfo 'lily.tif';>> imwrite(I,'lily.jpg','quality',20);>> imwrite(I,'lily.bmp');7~9 >>I=imread('Sunset.jpg');>>J=imread('Winter.jpg')>>imfinfo 'Sunset.jpg'>> imfinfo 'Winter.jpg'>>figure(1),imshow('Sunset.jpg')>>figure(2),imshow('Winter.jpg')三、二值化图像10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。
实验三数字图像地空间域滤波
实验三、四数字图像的空间域滤波和频域滤波1.实验目的1.掌握图像滤波的基本定义及目的。
2.理解空间域滤波的基本原理及方法。
3.掌握进行图像的空域滤波的方法。
4.掌握傅立叶变换及逆变换的基本原理方法。
5.理解频域滤波的基本原理及方法。
6.掌握进行图像的频域滤波的方法。
2.实验基本原理1.空间域增强空间域滤波是在图像空间中借助模板对图像进行领域操作,处理图像每一个像素的取值都是根据模板对输入像素相应领域内的像素值进行计算得到的。
空域滤波基本上是让图像在频域空间内某个范围的分量受到抑制,同时保证其他分量不变,从而改变输出图像的频率分布,达到增强图像的目的。
空域滤波一般分为线性滤波和非线性滤波两类。
线性滤波器的设计常基于对傅立叶变换的分析,非线性空域滤波器则一般直接对领域进行操作。
各种空域滤波器根据功能主要分为平滑滤波器和锐化滤波器。
平滑可用低通来实现,平滑的目的可分为两类:一类是模糊,目的是在提取较大的目标前去除太小的细节或将目标内的小肩端连接起来;另一类是消除噪声。
锐化可用高通滤波来实现,锐化的目的是为了增强被模糊的细节。
结合这两种分类方法,可将空间滤波增强分为四类:线性平滑滤波器(低通)非线性平滑滤波器(低通)线性锐化滤波器(高通)非线性锐化滤波器(高通)空间滤波器都是基于模板卷积,其主要工作步骤是:1)将模板在图中移动,并将模板中心与图中某个像素位置重合;2)将模板上的系数与模板下对应的像素相乘;3)将所有乘积相加;4)将和(模板的输出响应)赋给图中对应模板中心位置的像素。
2.平滑滤波器1)线性平滑滤波器线性低通平滑滤波器也称为均值滤波器,这种滤波器的所有系数都是正数,对3×3的模板来说,最简单的是取所有系数为1,为了保持输出图像任然在原来图像的灰度值范围内,模板与象素邻域的乘积都要除以9。
MATLAB 提供了fspecial 函数生成滤波时所用的模板,并提供filter2 函数用指定的滤波器模板对图像进行运算。
图像处理实验3-4
数字图像处理实验1. 直方图修正灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特征更加明显。
灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像增强。
(1)计算出一幅灰度图像的直方图clearclose allI=imread(' rice.png');imhist(I)title('实验一(1)直方图');(2)对灰度图像进行简单的灰度线形变换,figuresubplot(2,2,1)imshow(I);title('试验2-灰度线性变换');subplot(2,2,2)histeq(I);(3)看其直方图的对应变化和图像对比度的变化原图像f(m,n) 的灰度范围[a,b] 线形变换为图像g(m,n),灰度范围[a’,b’] 公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)figuresubplot(2,2,1)imshow(I)J=imadjust(I,[0.3,0.7],[0,1],1);title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n)/(b-a)进行变换');subplot(2,2,2)imshow(J)subplot(2,2,3)imshow(I)J=imadjust(I,[0.5 0.8],[0,1],1);subplot(2,2,4)imshow(J)(4) 图像二值化(选取一个域值,将图像变为黑白图像)figuresubplot(2,2,1)imshow(I)J=find(I<150);I(J)=0;J=find(I>=150);I(J)=255;title(' 实验一(4)图像二值化( 域值为150 )');subplot(2,2,2)imshow(I)clc;I=imread(‘rice.png');bw=im2bw(I,0.5);%选取阈值为0.5figure;imshow(bw) %显示二值图像2. 图像处理变换1.傅立叶变换熟悉其概念和原理,实现对一幅灰度图像的快速傅立叶变换,并求其变换后的系数分布. 2.离散余弦变换熟悉其概念和原理,实现对一幅灰度和彩色图像作的离散余弦变换,选择适当的DCT系数阈值对其进行DCT反变换.% 图像的FFT变换clc;I=imread('rice.png');subplot(1,2,1)imshow(I);title('原图');subplot(1,2,2)imhist(I);title('直方图');colorbar;J=fft2(I);figure;subplot(1,2,1)imshow(J);title('FFT变换结果');subplot(1,2,2)K=fftshift(J);imshow(K);title('零点平移');figure;imshow(log(abs(K)),[]),colormap(jet(64)),colorbar;title('系数分布图');% 图像的DCT变换RGB=imread('onion.png');figure;subplot(1,2,1)imshow(RGB);title('彩色原图');a=rgb2gray(RGB);subplot(1,2,2)imshow(a);title('灰度图');figure;b=dct2(a);imshow(log(abs(b)),[]),colormap(jet(64)),colorbar; title('DCT变换结果');figure;b(abs(b)<10)=0;% idctc=idct2(b)/255;imshow(c);title('IDCT变换结果');3. 小波变换实验内容:熟悉小波变换的概念和原理,熟悉matlab小波工具箱主要函数的使用.利用二维小波分析对一幅图像作2层小波分解,并在此基础上提取各层的低频信息实现图像的压缩.程序如下:clcclose allcleara=imread('deblur1.png ');subplot(1,2,1);imshow(a);title('原始图像');I=rgb2gray(a);subplot(1,2,2);imshow(I);title('原始图像的灰度图');% 进行二维小波变换[a,b] = wavedec2(I, 2, 'bior3.7');% 提取各层低频信息figure;c = appcoef2( a, b, 'bior3.7', 1 );subplot(1,2,1);imshow(c, []);title('一层小波变换结果');d = appcoef2( a, b, 'bior3.7', 2 );subplot(1,2,2);imshow(d, []);title('二层小波变换结果');4. 模板运算一、实验内容:(1)平滑:平滑的目的是模糊和消除噪声。
数字图像处理实验报告实验三
代码:
I=imread('lines.png');
F=rgb2gray(I);
subplot(2,2,1);
imshow(I);
title('原始图像');
thread=130/255;
subplot(2,2,2);
imhist(F);
图5-2 添上一层(漆)
3.开运算open:
4.闭close:
5.HMT(Hit-Miss Transform:击中——击不中变换)
条件严格的模板匹配
模板由两部分组成。 :物体, :背景。
图5-3 击不中变换示意图
性质:
(1) 时,
(2)
6.细化/粗化
(1)细化(Thin)
去掉满足匹配条件的点。
图5-4 细化示意图
se = strel('ball',5,5);
I2 = imerode(I,se);
imshow(I), title('Original')
figure, imshow(I2), title('Eroded')
Matlab用imopen函数实现图像开运算。用法为:
imopen(I,se);
I为图像源,se为结构元素
构造一个中心具有菱形结构的结构元素,R为跟中心点的距离
SE = strel('rectangle',MN)
构造一个矩形的结构元素,MN可写在[3 4],表示3行4列
SE = strel('square',W)
构造一个正方形的矩阵。
图像滤波实验报告分析的三个基本流程
图像滤波实验报告分析的三个基本流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
本文下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Downloaded tips: This document is carefully compiled by the editor. I hope that after you download them, they can help you solve practical problems. The documents can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!图像滤波是数字图像处理中的重要技术之一,通过对图像进行不同类型的滤波可以实现图像去噪、边缘检测、模糊等效果。
图像增强实验报告
图像增强实验报告篇一:图像处理实验报告——图像增强实验报告学生姓名:刘德涛学号:2010051060021指导老师:彭真明日期:2013年3月31日一、实验室名称:光电楼329、老计算机楼309机房二、实验项目名称:图像增强三、实验原理:图像增强是为了使受到噪声等污染图像在视觉感知或某种准则下尽量的恢复到原始图像的水平之外,还需要有目的性地加强图像中的某些信息而抑制另一些信息,以便更好地利用图像。
图像增强分频域处理和空间域处理,这里主要用空间域的方法进行增强。
空间域的增强主要有:灰度变换和图像的空间滤波。
1.灰度变换灰度变换主要有线性拉伸、非线性拉伸等。
灰度图像的线性拉伸是将输入图像的灰度值的动态范围按线性关系公式拉伸到指定范围或整个动态范围。
令原图像f(x,y)的灰度变化范围为[a,b],线性变换后图像g(x,y)的范围为[a',b'],线性拉伸的公式为:b'?a'g(x,y)?a?[f(x,y)?a] b?a灰度图像的非线性拉伸采用的数学函数是非线性的。
非线性拉伸不是对图像的灰度值进行扩展,而是有选择地对某一灰度范围进行扩展,其他范围的灰度值则可能被压缩。
常用的非线性变换:对数变换和指数变换。
对数变换的一般形式:g(x,y)?a?ln[f(x,y)?1] blnc指数变换的一般形式:g(x,y)?bc[f(x,y)?a]?1(a,b,c用于调整曲线的位置和形状的参数。
)2.图像的空间滤波图像的空间滤波主要有图像的空域平滑和锐化。
图像的平滑是一种消除噪声的重要手段。
图像平滑的低频分量进行增强,同时抑制高频噪声,空域中主要的方法有领域平均、中值滤波、多帧相加平均等方法。
图像锐化能使图像的边缘、轮廓处的灰度具有突变特性。
图像的锐化主要有微分运算的锐化,包括梯度法和拉普拉斯法算子。
四、实验目的:1.熟悉和掌握利用Matlab工具进行数字图像的读、写、显示等数字图像处理基本步骤。
数字图像处理四个实验
数字图像处理实验指导书目录实验一MATLAB数字图像处理初步实验二图像的代数运算实验三图像增强-空间滤波实验四图像分割实验五形态学运算3实验一 MATLAB数字图像处理初步一、实验目的与要求1.熟悉及掌握在MATLAB中能够处理哪些格式图像。
2.熟练掌握在MATLAB中如何读取图像。
3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。
4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。
5.图像间如何转化。
二、实验原理及知识点1、数字图像的表示和类别一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。
灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。
例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。
因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。
图像关于x和y坐标以及振幅连续。
要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。
将坐标值数字化成为取样;将振幅数字化成为量化。
采样和量化的过程如图1所示。
因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。
作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。
图1 图像的采样和量化根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类:亮度图像(Intensity images)二值图像(Binary images)索引图像(Indexed images)RGB图像(RGB images)(1) 亮度图像一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。
若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。
图像增强—空域滤波实验报告
图像增强—空域滤波实验报告篇一:5.图像增强—空域滤波 - 数字图像处理实验报告计算机与信息工程学院验证性实验报告一、实验目的进一步了解MatLab软件/语言,学会使用MatLab对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。
了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。
二、实验要求(1)学生应当完成对于给定图像+噪声,使用平均滤波器、中值滤波器对不同强度的高斯噪声和椒盐噪声,进行滤波处理;能够正确地评价处理的结果;能够从理论上作出合理的解释。
(2)利用MATLAB软件实现空域滤波的程序:I=imread('electric.tif');J = imnoise(I,'gauss',0.02); %添加高斯噪声 J = imnoise(I,'salt & pepper',0.02); %添加椒盐噪声ave1=fspecial('average',3); %产生3×3的均值模版ave2=fspecial('average',5); %产生5×5的均值模版 K = filter2(ave1,J)/255; %均值滤波3×3 L = filter2(ave2,J)/255; %均值滤波5×5 M = medfilt2(J,[3 3]);%中值滤波3×3模板 N = medfilt2(J,[4 4]); %中值滤波4×4模板 imshow(I);figure,imshow(J); figure,imshow(K); figure,imshow(L); figure,imshow(M); figure,imshow(N);三、实验设备与软件(1) IBM-PC计算机系统(2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) (3) 实验所需要的图片四、实验内容与步骤a) 调入并显示原始图像Sample2-1.jpg 。
数字图像处理实验三中值滤波和均值滤波实验报告
数字图像处理实验三均值滤波、中值滤波的计算机实现崔雪莹计科1202班一、实验目的:1)熟悉均值滤波、中值滤波处理的理论基础;2)掌握均值滤波、中值滤波的计算机实现方法;3)学习VC++ 6。
0 的编程方法;4)验证均值滤波、中值滤波处理理论;5)观察均值滤波、中值滤波处理的结果。
二、实验的软、硬件平台:硬件:微型图像处理系统,包括:主机, PC机;摄像机;软件:操作系统:WINDOWS2000或WINDOWSXP应用软件:VC++ 三、实验内容:1)握高级语言编程技术;2)编制均值滤波、中值滤波处理程序的方法;3)编译并生成可执行文件;4)考察处理结果。
四、实验要求:1)学习VC++确6。
0 编程的步骤及流程;2)编写均值滤波、中值滤波的程序;3)编译并改错;4)把该程序嵌入试验二给出的界面中(作适当修改);5)提交程序及文档;6)写出本次实验的体会。
五、实验结果截图实验均值滤波采用的是3X3的方块,取周围的像素点取得其均值代替原像素点。
边缘像素的处理方法是复制边缘的像素点,增加一个边框,计算里面的像素值得均值滤波。
六、实验体会本次实验在前一次的实验基础上增加均值滤波和中值滤波,对于椒盐噪声的处理,发现中值滤波的效果更为好一点,而均值滤波是的整个图像变得模糊了一点,效果差异较大。
本次实验更加增加了对数字图像处理的了解与学习。
七、实验程序代码注释及分析.”菜单项添加到系统菜单中。
gbBlue;lpBits2[p2+1]=pPalette[Palette].rgbGreen;lpBits2[p2+2]=pPalette[Palette].rgbRed;}}delete lpTemp;}lpBits=lpBitmap+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);if (lpBackup) delete lpBackup;lpBackup=new BYTE[nLen];memcpy(lpBackup,lpBitmap,nLen);}void CHistDemoADlg::OnOpen() mp|所有文件|*.*||",this);//新建文件选择对话框if ()==IDOK){FileName=(); //得到文件的路径if (!(FileName,CFile::modeRead)) return; //以只读方式打开文件// TODO: add loading code hereif (lpBitmap) delete lpBitmap; //保证lpBitmap为空nLen=(int)(); //得到文件的长度lpBitmap=new BYTE[nLen]; //为lpBitmap分配空间(lpBitmap,nLen); //将文件的内容读入到lpBitmap所指向的内存区域LoadBitmap(); //调用LoadBitmap(),加载位图图像if (lpBitmap) (nWidth,nHeight,lpBits);}}void CHistDemoADlg::OnHist(){// TODO: 在此添加控件通知处理程序代码HistogramEq();}void GetPoints(int nWidth,int nHeight,BYTE *lpBits,BYTE *lpPoints){int x,y,p;int nByteWidth=nWidth*3;if (nByteWidth%4) nByteWidth+=4-(nByteWidth%4);for(y=0;y<nHeight;y++) //每一行{for(x=0;x<nWidth;x++) //每一列{p=x*3+y*nByteWidth;lpPoints[x+y*nWidth]=(BYTE)*(float)lpBits[p+2]+*(float)lpBits[p+1]+*(float)lpBits[p]+; //三种颜色的比例计算对应点的颜色值,并且强制转换成BYTE}}}void PutPoints(int nWidth,int nHeight,BYTE *lpBits,BYTE *lpPoints) //逐个对lpBits进行赋值{int nByteWidth=nWidth*3;if (nByteWidth%4) nByteWidth+=4-(nByteWidth%4);int x,y,p,p1;for(y=0;y<nHeight;y++) //每一行{for(x=0;x<nWidth;x++) //每一列{p=x*3+y*nByteWidth;p1=x+y*nWidth;lpBits[p]=lpPoints[p1];lpBits[p+1]=lpPoints[p1];lpBits[p+2]=lpPoints[p1];}}}void CHistDemoADlg::HistogramEq(void){if (lpBitmap==0) return;BYTE *lpOutput=new BYTE[nByteWidth*nHeight];HistogramEq1(nWidth,nHeight,lpBits,lpOutput);(nWidth,nHeight,lpOutput); //在直方图均衡化的区域显示结果delete lpOutput;NoColor(); //将原始图像转换成灰度图像}void CHistDemoADlg:: NoColor(){if (lpBitmap==0) return;int x,y,p;BYTE Point;for(y=0;y<nHeight;y++) //每一行{for(x=0;x<nWidth;x++) //每一列{p=x*3+y*nByteWidth;Point=(BYTE)*(float)lpBits[p+2]+*(float)lpBits[p+1]+*(float)lpBits[p]+;//计算颜色值,在0-255的灰度级之间lpBits[p+2]=Point;lpBits[p+1]=Point;lpBits[p]=Point;}}(nWidth,nHeight,lpBits);//将彩色图像转化成灰度图像}void CHistDemoADlg::HistogramEq1(int nWidth, int nHeight, BYTE *lpInput, BYTE *lpOutput){int x,y;BYTE *lpPoints=new BYTE[nWidth*nHeight];//像素点的个数GetPoints(nWidth,nHeight,lpInput,lpPoints); //lpPoints存的是颜色值int r[256],s[256]; //颜色值数组,统计对应颜色值像素点的个数ZeroMemory(r,1024);ZeroMemory(s,1024);for(y=0;y<nHeight;y++){ //统计对应颜色值像素点的个数,Point(x,y)是lpPoints(x,y)for(x=0;x<nWidth;x++){r[Point(x,y)]++;}}s[0]=r[0];for(y=1;y<256;y++){s[y]=s[y-1];s[y]+=r[y];} //计算颜色值的前y种颜色的总像素点的个数(像素点颜色值<=y)for(y=0;y<nHeight;y++){ //将计算对应点的像素值,直方图均匀化的结果保存在lpPointsfor(x=0;x<nWidth;x++){Point(x,y)=s[Point(x,y)]*255/nWidth/nHeight;}}PutPoints(nWidth,nHeight,lpOutput,lpPoints); //输出lpPoints到lpOutputdelete lpPoints;}void CHistDemoADlg::OnBnClickedClose(){// TODO: 在此添加控件通知处理程序代码//ExitProcess(0);//注意使用时先释放分配的内存,以免造成内存泄露//exit(0) ;//正常终止程序; exit(非0)非正常终止程序PostQuitMessage(0);//最常用}void CHistDemoADlg::OnBnClickedMeanfilter(){// TODO: 在此添加控件通知处理程序代码if (lpBitmap==0) return;BYTE *lpOutput=new BYTE[nByteWidth*nHeight];MeanFilter(nWidth,nHeight,lpBits,lpOutput);(nWidth,nHeight,lpOutput); //在直方图均衡化的区域显示结果delete lpOutput;NoColor(); //将原始图像转换成灰度图像}void CHistDemoADlg::MeanFilter (int nWidth,int nHeight,BYTE *lpInput,BYTE *lpOutput){int x,y;BYTE *lpPoints=new BYTE[nWidth*nHeight];//像素点的个数BYTE *lpPoints1 = new BYTE[(nWidth+2)*(nHeight+2)];GetPoints(nWidth,nHeight,lpInput,lpPoints); //lpPoints存的是颜色值for(y=1;y<nHeight+1;y++){ //中间最整块图像的拷贝for(x=1;x<nWidth;x++){Point1(x,y) = Point(x-1,y-1);//lpPoints1[y][x] = lpPoints[y-1][x-1];}}for(y=1;y<nHeight+1;y++){ //最左边和最右边一列的拷贝Point1(0,y) = Point(0,y-1);Point1(nWidth+1,y) = Point(nWidth-1,y-1);//lpPoints1[y][0] = lpPoints[y-1][0];//lpPoints1[y][nWidth+1] = lpPoints[y-1][nWidth-1];}for(x=0;x<nWidth+2;x++){ //最上边和最下边一行的拷贝Point1(x,0) = Point1(x,1);Point1(x,nHeight+1) = Point1(x,nHeight);//lpPoints1[0][x] = lpPoints1[1][x];//lpPoints1[nHeight+1][x] = lpPoints1[nHeight][x];}for(y=0;y<nHeight;y++){ //求以某点为中心的九个数平均值for (x=0;x<nWidth;x++){Point(x,y) = ( Point1(x,y) + Point1(x+1,y) + Point1(x+2,y) +Point1(x,y+1) + Point1(x+1,y+1) + Point1(x+2,y+1) +Point1(x,y+2) + Point1(x+1,y+2) + Point1(x+2,y+2) )/9;/*lpPoints[y][x] = (lpPoints1[y][x] + lpPoints1[y][x+1] + lpPoints1[y][x+2] +lpPoints1[y+1][x] + lpPoints1[y+1][x+1] + lpPoints1[y+1][x+2] +lpPoints1[y+2][x] + lpPoints1[y+2][x+1] + lpPoints1[y+2][x+2])/9;*/}}PutPoints(nWidth,nHeight,lpOutput,lpPoints); //输出lpPoints到lpOutputdelete lpPoints;}void CHistDemoADlg::MedianFilter(int nWidth,int nHeight,BYTE *lpInput,BYTE *lpOutput){int x,y;BYTE *lpPoints=new BYTE[nWidth*nHeight];//像素点的个数BYTE *lpPoints1 = new BYTE[(nWidth+2)*(nHeight+2)];GetPoints(nWidth,nHeight,lpInput,lpPoints); //lpPoints存的是颜色值for(y=1;y<nHeight+1;y++){ //中间一整块拷贝for(x=1;x<nWidth;x++){Point1(x,y) = Point(x-1,y-1);}}for(y=1;y<nHeight+1;y++){ //最左边和最右边一列的拷贝Point1(0,y) = Point(0,y-1);Point1(nWidth+1,y) = Point(nWidth-1,y-1);}for(x=0;x<nWidth+2;x++){ //最上边和最下边一行的拷贝Point1(x,0) = Point1(x,1);Point1(x,nHeight+1) = Point1(x,nHeight);}BYTE *window = new BYTE[9];for(y=0;y<nHeight;y++){for (x=0;x<nWidth;x++){int k = 0;for(int i=y ; i <= y+2 ; i++){for(int j=x ; j <= x+2; j++){if(k < 9)window[k++] = Point1(j,i);}}for (int m = 0; m < 5; ++m) //求9个数的中值,window[4]为中值{int min = m;for (int n = m + 1; n < 9; ++n)if (window[n] < window[min])min = n;// Put found minimum element in its placeBYTE temp = window[m];window[m] = window[min];window[min] = temp;}Point(x,y) = window[4];}}PutPoints(nWidth,nHeight,lpOutput,lpPoints); //输出lpPoints到lpOutputdelete lpPoints;}void CHistDemoADlg::OnBnClickedMedianfilter(){// TODO: 在此添加控件通知处理程序代码if (lpBitmap==0) return;BYTE *lpOutput=new BYTE[nByteWidth*nHeight];MedianFilter(nWidth,nHeight,lpBits,lpOutput);(nWidth,nHeight,lpOutput); //在中值滤波的区域显示结果delete lpOutput;NoColor(); //将原始图像转换成灰度图像}类继承自CWnd主要是图像显示方面的函数,如水平滚轮和垂直滚轮的事件函数,以及绘制函数OnPaint(),初始化函数等等,以及存放需要绘制的图像信息的成员变量。
数字图像处理实验指导书(带源程序)
实验一Matlab图像处理工具箱的初步练习一. 实验目的1. 掌握有关数字图像处理的基本概念;2. 熟悉Matlab图像处理工具箱;3. 熟悉使用Matlab进行数字图像的读出和显示;4. 熟悉运用Matlab指令进行图像旋转和缩放变换。
二. 练习1. 文件的读入与显示(1) 运行Matlab。
(2) MATLAB窗口构成:在缺省的情况下,由三个窗口组成。
命令窗口(command window)、命令历史(command history)、工作空间(workspace)。
注意:缺省窗口的设置步骤为:MATLAB菜单/view选项/Desktop layout/default。
(3) 调入一个文件:i=imread('pout.tif');%注意:前面的“%”是用于注释的,不会被执行,只是说明这个语句的作用。
此时的i出现在什么窗口?是什么类型的变量?大小是多少?(4) 显示这幅图:imshow(i);(5) 将变量i转置成j,即j=i';显示j即imshow(j);%在胸前左侧花纹怎么会跑到右边的呢?举一个例子加以验证:设a=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15];b=a’;此时的b与a有什么区别?(6) 写入到一个新的图像文件'abc.tif'中,即imwrite(j,'abc.tif')。
(7) 清除变量命令:clear执行这个命令后,workspace窗口中的变量有没有?怎么验证?(8) 清除用户开设的窗口命令:close all(9) 调入图像文件'abc.tif'并显示。
问题:(1) 操作符“’”是图像的转置的意思,转置两次后,是否回到原图像?(2) 命令后的符号“;”所起的作用是什么?(3) 命令是否可以大写母?2. 灰度图像分别选择不同的灰度级(如2、4、16、64、128个)来显示同一幅图像(如testpat1.tif)。
实验三图像的平滑与锐化
实验三 图像的平滑与锐化一.实验目的1.掌握图像滤波的基本定义及目的;2.理解空域滤波的基本原理及方法;3.掌握进行图像的空域滤波的方法。
二.实验基本原理图像噪声从统计特性可分为平稳噪声和非平稳噪声两种。
统计特性不随时间变化的噪声称为平稳噪声;统计特性随时间变化的噪声称为非平稳噪声。
另外,按噪声和信号之间的关系可分为加性噪声和乘性噪声。
假定信号为S (t ),噪声为n (t ),如果混合叠加波形是S (t )+n (t )形式,则称其为加性噪声;如果叠加波形为S (t )[1+n (t )]形式, 则称其为乘性噪声。
为了分析处理方便,往往将乘性噪声近似认为加性噪声,而且总是假定信号和噪声是互相独立的。
1.均值滤波均值滤波是在空间域对图像进行平滑处理的一种方法,易于实现,效果也挺好。
设噪声η(m,n)是加性噪声,其均值为0,方差(噪声功率)为2σ,而且噪声与图像f(m,n)不相关。
除了对噪声有上述假定之外,该算法还基于这样一种假设:图像是由许多灰度值相近的小块组成。
这个假设大体上反映了许多图像的结构特征。
∑∈=s j i j i f M y x g ),(),(1),( (3-1)式(2-1)表达的算法是由某像素领域内各点灰度值的平均值来代替该像素原来的灰度值。
可用模块反映领域平均算法的特征。
对模板沿水平和垂直两个方向逐点移动,相当于用这样一个模块与图像进行卷积运算,从而平滑了整幅图像。
模版内各系数和为1,用这样的模板处理常数图像时,图像没有变化;对一般图像处理后,整幅图像灰度的平均值可不变。
(a) 原始图像 (b) 邻域平均后的结果图3-1 图像的领域平均法2.中值滤波中值滤波是一种非线性处理技术,能抑制图像中的噪声。
它是基于图像的这样一种特性:噪声往往以孤立的点的形式出现,这些点对应的象素很少,而图像则是由像素数较多、面积较大的小块构成。
在一维的情况下,中值滤波器是一个含有奇数个像素的窗口。
数字媒体实验报告文档(3篇)
第1篇一、实验目的本次实验旨在通过实践操作,让学生掌握数字媒体的基本处理方法,了解数字媒体技术的应用领域,并能够运用所学知识进行简单的数字媒体创作。
二、实验内容1. 数字图像处理实验一:图像的获取与格式转换目的:学习使用图像采集设备获取图像,并了解常见的图像格式。
内容:使用数码相机拍摄一张照片,了解其图像格式,并使用图像处理软件进行格式转换。
实验二:图像的基本编辑操作目的:掌握图像的基本编辑操作,如裁剪、旋转、调整亮度等。
内容:使用图像处理软件对实验一获取的图像进行裁剪、旋转、调整亮度等操作。
实验三:图像滤波与锐化目的:学习图像滤波与锐化的方法,提高图像质量。
内容:使用图像处理软件对实验一获取的图像进行滤波与锐化处理。
2. 数字音频处理实验一:音频信号的获取与格式转换目的:学习使用音频采集设备获取音频,并了解常见的音频格式。
内容:使用麦克风录制一段音频,了解其音频格式,并使用音频处理软件进行格式转换。
实验二:音频的基本编辑操作目的:掌握音频的基本编辑操作,如剪切、合并、调整音量等。
内容:使用音频处理软件对实验一获取的音频进行剪切、合并、调整音量等操作。
实验三:音频效果处理目的:学习音频效果处理方法,如混响、回声等。
内容:使用音频处理软件对实验一获取的音频进行混响、回声等效果处理。
3. 数字视频处理实验一:视频信号的获取与格式转换目的:学习使用视频采集设备获取视频,并了解常见的视频格式。
内容:使用摄像机录制一段视频,了解其视频格式,并使用视频处理软件进行格式转换。
实验二:视频的基本编辑操作目的:掌握视频的基本编辑操作,如剪切、合并、调整播放速度等。
内容:使用视频处理软件对实验一获取的视频进行剪切、合并、调整播放速度等操作。
实验三:视频特效处理目的:学习视频特效处理方法,如慢动作、快动作等。
内容:使用视频处理软件对实验一获取的视频进行慢动作、快动作等特效处理。
三、实验步骤1. 准备实验环境安装数字媒体处理软件,如Adobe Photoshop、Adobe Audition、Adobe Premiere等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三图像的滤波及增强
一、实验目的
1进一步了解MatLab软件/语言,学会使用MatLab对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。
2了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。
3 熟悉傅立叶变换的基本性质;
4 熟练掌握FFT变换方法及应用;
二、实验要求
(1)学生应当完成对于给定图像+噪声,使用平均滤波器、中值滤波器对不同强度的高斯噪声和椒盐噪声,进行滤波处理;能够正确地评价处理的结果;能够从理论上作出合理的解释。
(2)利用MATLAB软件实现空域滤波的程序:
I=imread('electric.tif');
J = imnoise(I,'gauss',0.02); %添加高斯噪声
J = imnoise(I,'salt & pepper',0.02); %添加椒盐噪声
ave1=fspecial('average',3); %产生3×3的均值模版
ave2=fspecial('average',5); %产生5×5的均值模版
K = filter2(ave1,J)/255; %均值滤波3×3
L = filter2(ave2,J)/255; %均值滤波5×5
M = medfilt2(J,[3 3]); %中值滤波3×3模板
N = medfilt2(J,[4 4]); %中值滤波4×4模板
imshow(I);
figure,imshow(J);
figure,imshow(K);
figure,imshow(L);
figure,imshow(M);
figure,imshow(N);
(3) 应用傅立叶变换进行图像处理
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。
通过实验培养这项技能,将有助于解决大多数图像处理问题。
对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
(4) 傅立叶(Fourier )变换的定义
对于二维信号,二维Fourier 变换定义为:
2()(,)(,)j ux uy F u v f x y e dxdy π∞∞
-+-∞-∞=
⎰⎰
逆变换: 2()(,)(,)j ux uy f x y F u v e
dudv π∞∞+-∞-∞=
⎰⎰ 二维离散傅立叶变换为: 11
2()001(,)(,)i k N N j m n N N i k F m n f i k e N
π---+===∑∑
逆变换: 11
2()001(,)(,)i k N N j m n N N
m n f i k F m n e N π--+===∑∑ 图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。
实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。
(5)利用MATLAB 软件实现数字图像傅立叶变换的程序:
I=imread(‘原图像名.gif’); %读入原图像文件
imshow(I); %显示原图像
fftI=fft2(I); %二维离散傅立叶变换
sfftI=fftshift(fftI); %直流分量移到频谱中心
RR=real(sfftI); %取傅立叶变换的实部
II=imag(sfftI); %取傅立叶变换的虚部
A=sqrt(RR.^2+II.^2); %计算频谱幅值
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225 %归一化
figure; %设定窗口
imshow(A); %显示原图像的频谱
三、实验设备与软件
(1) IBM-PC 计算机系统
(2) MatLab 软件/语言包括图像处理工具箱(Image Processing Toolbox)
(3) 实验所需要的图片
四、实验内容与步骤
1)模板滤波
a) 调入并显示原始图像Sample2-1.jpg 。
b) 利用imnoise 命令在图像Sample2-1.jpg 上加入高斯(gaussian) 噪声
c)利用预定义函数fspecial 命令产生平均(average)滤波器
111191111---⎡⎤⎢⎥--⎢⎥⎢⎥---⎣
⎦ d )分别采用3x3和5x5的模板,分别用平均滤波器以及中值滤波器,对加入噪声的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果;
e )选择不同大小的模板,对加入某一固定噪声水平噪声的图像进行处理,观察上述滤波器处理的结果。
f )利用imnoise 命令在图像Sample2-1.jp
g 上加入椒盐噪声(salt & pepper)
g )重复c)~ e )的步骤
h )输出全部结果并进行讨论。
实验代码:
I=imread('eight.tif');
J = imnoise(I,'gauss',0.02);
J = imnoise(I,'salt & pepper',0.02);
ave1=fspecial('average',3);
ave2=fspecial('average',5);
K = filter2(ave1,J)/255;
L = filter2(ave2,J)/255;
M = medfilt2(J,[3 3]);
N = medfilt2(J,[4 4]);
imshow(I);
figure,imshow(J);
figure,imshow(K);
figure,imshow(L);
figure,imshow(M);
figure,imshow(N);
实验结果:
图表 1 :原图 图表 2:加入噪声
图表 3:3*3模板平均值滤波图表 4:5*5模板平均值滤波
图表 5 :3*3中值滤波图表 6:4*4中值滤波
2)频域滤波
a.将图像内容读入内存;
b.用Fourier变换算法,对图像作二维Fourier变换;
c.将其幅度谱进行搬移,在图像中心显示;
d.用Fourier系数的幅度进行Fourier反变换;
e.用Fourier系数的相位进行Fourier反变换;
f.比较4、5的结果,评价人眼对图像幅频特性和相频特性的敏感度。
g.记录和整理实验报告。
实验代码:
clear all;close all;clc;
I=imread('eight.tif');
imshow(I);
fftI=fft2(I);
sfftI=fftshift(fftI);
RR=real(sfftI);
II=imag(sfftI);
A=sqrt(RR.^2+II.^2);
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225;
figure;
imshow(A);
f1=ifft2(A)*255;
f2=ifft2(angle(fftI))*255;
figure;
imshow(f1);
figure;
imshow(f2);
实验结果:
图表 7:原图图表 8:FFT变换
图表 9 :振幅IFFT 图表 10:相位IFFT
五、思考题/问答题
(1) 简述高斯噪声和椒盐噪声的特点。
高斯噪声是指噪声服从高斯分布,即某个强度的噪声点个数最多,离这个强度越远噪声点个数越少,且这个规律服从高斯分布。
高斯噪声是一种加性噪声,即噪声直接加到原图像上,因此可以用线性滤波器滤除。
椒盐噪声类似把椒盐撒在图像上,是一种在图像上出现很多白点或黑点的噪声。
椒盐噪声可以认为是一种逻辑噪声,用线性滤波器滤除的结果不好,一般采用中值滤波器滤波可以得到较好的结果。
(2) 结合实验内容,定性评价平均滤波器/中值滤波器对高斯噪声和椒盐噪声的去
噪效果?
平均滤波器对高斯噪声滤除效果加好,中值滤波对椒盐噪声滤除效果叫好。
(3) 结合实验内容,定性评价滤波窗口对去噪效果的影响?
窗口设定的越大,会使滤波后的图像边缘越模糊,窗口越小,滤除效果越差,同
时边缘也不会那么模糊。
六、实验心得
通过这次实验让我了解了不同的滤波方法的滤波原理,同时也学会了不同的滤
波方式对不同的噪声滤除效果不同,在应用中要根据不同的噪声选择不同的滤波方式,同时在做FFT的振幅个相位的逆变换时也遇到了不少问题,最终感觉的到的逆变换结
果也不是那么理想,相位的逆变换结果是一片黑色,也许是逆变换过程中那个地方出
现了错误,在后面的实验中,我还要把这次实验中出现的问题逐渐解决。