当前位置:文档之家› 图像的傅立叶变换和边缘提取

图像的傅立叶变换和边缘提取

实验五图像的傅立叶变换和边缘提取兰州大学信息学院 0级通信工程一班赵军伟第一部分图像的傅立叶变换一、实验目的1.了解图像变换的意义和手段;2. 熟悉傅里叶变换的基本性质;3. 熟练掌握FFT的方法及应用;4. 通过实验了解二维频谱的分布特点;5. 通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换。

二、实验原理1.应用傅立叶变换进行图像处理傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。

通过实验培养这项技能,将有助于解决大多数图像处理问题。

对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。

b5E2RGbCAP2.傅立叶<Fourier)变换的定义对于二维信号,二维Fourier变换定义为:二维离散傅立叶变换为:三、实验步骤1.打开计算机,安装和启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;2.利用MatLab工具箱中的函数编制FFT频谱显示的函数。

3. a>调入、显示三张不同的图像;b>对这三幅图像做FFT并利用自编的函数显示其频谱。

c>讨论不同的图像内容与FFT频谱之间的对应关系。

4.记录和整理实验报告。

四、实验仪器1计算机, MATLAB软件;3移动式存储器<软盘、U盘等)。

4记录用的笔、纸。

五、实验结果及程序1.程序I1=imread('F:\MATLAB学习\实验\picture\LENA.TIF'>。

%读入原图像文件p1EanqFDPwI2=imread('F:\MATLAB学习\实验\picture\cell.tif'>。

%读入原图像文件DXDiTa9E3dI3=imread('cameraman.tif'>。

%读入原图像文件subplot(3,2,1>。

imshow(I1>。

%显示原图像fftI1=fft2(I1>。

%二维离散傅立叶变换sfftI1=fftshift(fftI1>。

%直流分量移到频谱中心RR1=real(sfftI1>。

%取傅立叶变换的实部II1=imag(sfftI1>。

%取傅立叶变换的虚部A1=sqrt(RR1.^2+II1.^2>。

%计算频谱幅值A1=(A1-min(min(A1>>>/(max(max(A1>>-min(min(A1>>>*225。

%归一化RTCrpUDGiTsubplot(3,2,2>。

imshow(A1>。

%显示原图像的频谱subplot(3,2,3>。

imshow(I2>。

%显示原图像fftI2=fft2(I2>。

%二维离散傅立叶变换sfftI2=fftshift(fftI2>。

%直流分量移到频谱中心RR2=real(sfftI2>。

%取傅立叶变换的实部II2=imag(sfftI2>。

%取傅立叶变换的虚部A2=sqrt(RR2.^2+II2.^2>。

%计算频谱幅值A2=(A2-min(min(A2>>>/(max(max(A2>>-min(min(A2>>>*225。

%归一化5PCzVD7HxAsubplot(3,2,4>。

imshow(A2>。

%显示原图像的频谱subplot(3,2,5>。

imshow(I3>。

%显示原图像fftI3=fft2(I3>。

%二维离散傅立叶变换sfftI3=fftshift(fftI3>。

%直流分量移到频谱中心RR3=real(sfftI3>。

%取傅立叶变换的实部II3=imag(sfftI3>。

%取傅立叶变换的虚部A3=sqrt(RR3.^2+II3.^2>。

%计算频谱幅值A3=(A3-min(min(A3>>>/(max(max(A3>>-min(min(A3>>>*225。

%归一化jLBHrnAILgsubplot(3,2,6>。

imshow(A3>。

%显示原图像的频谱2.结果六、思考题1.傅里叶变换有哪些重要的性质?线性、时频对偶性、展缩性、时移性、时域和频域的微分性等。

第二部分图像边缘提取一.实验目的:掌握图像边缘提取的常用算子的特点和程序实现。

二.实验原理:边缘就是图像中包含的对象的边界所对应的位置。

物体的边缘以图像局部特性的不连续性的形式出现的,例如,灰度值的突变,颜色的突变,纹理结构的突变等。

从本质上说,边缘就意味着一个区域的终结和另外一个区域的开始。

图像边缘信息在图像分析和人的视觉中十分重要,是图像识别中提取图像特征的一个重要属性。

xHAQX74J0X边缘检测<edge detection)在图像处理和对象识别领域中都是一个重要的基本问题。

由于边缘的灰度不连续性,可以使用求导数的方法检测到。

最早的边缘检测方法都是基于像素的数值导数的运算。

现在使用的边缘检测算法大致可以归纳为两类:梯度<gradient)算子和拉普拉斯(Laplacian>算子。

LDAYtRyKfE三.实验内容:编制一个通用的边缘提取函数。

通过输入不同的参数,能够实现Sobel算子、Prewitt算子、Roberts算子、Laplace算子和Canny 边缘检测,并比较不同算子处理后的边缘图像的特点。

(实验图像任选>Zzz6ZB2LtkMATLAB图像处理工具箱提供的edge函数可以实现检测边缘的功能,详细的使用语法可以在MATLAB命令窗口键入”help edge.m”获得帮助。

该函数只能应用于灰度图像,其基本原理就是识别图像中灰度值变化较大的像素点。

dvzfvkwMI1四.实验步骤:a、读入图像对图像依次进行Sobel算子,Prewitt算子,Roberts算子,Laplace算子和Canny算子运算,比较处理结果。

rqyn14ZNXI 五.实验仪器1计算机;2 MATLAB软件;3移动式存储器<软盘、U盘等)。

4记录用的笔、纸。

六、实验结果及程序1.程序I=imread('cameraman.tif'>。

subplot(2,3,1>。

imshow(I>。

title('<a)原始图像'>。

subplot(2,3,2>。

I1=edge(I,'sobel'>。

imshow(I1>。

title('<b)Sobel算子'>。

subplot(2,3,3>。

I2=edge(I,'prewitt'>。

imshow(I2>。

title('<c)Prewitt算子'>。

subplot(2,3,4>。

I3=edge(I,'robert'>。

imshow(I3>。

title('<d)Robert算子'>。

subplot(2,3,5>。

I4=edge(I,'log'>。

imshow(I4>。

title('<e)Laplace算子'>。

subplot(2,3,6>。

I5=edge(I,'canny'>。

imshow(I5>。

title('<f)Canny算子'>。

2.实验结果3.实验结果分析由于Robert s 算子是利用图像的两个对角线的相邻像素之差进行梯度幅值的检测,所以求得的是在差分点处梯度幅值的近似值,并且检测水平和垂直方向边缘的性能好于斜线方向的边缘, 检测精度比较高, 但容易丢失一部分边缘, 同时由于没经过图像平滑计算,因此不能抑制噪声,该算子对具有陡峭的低噪声图像响应最好。

EmxvxOtOcoPrewit t 算子和Sobel 算子都是对图像进行差分和滤波运算,仅在平滑部分的权值选择上有些差异, 因此两者均对噪声具有一定的抑制能力, 但这种抗噪能力是通过像素平均来实现的, 所以图像产生了一定的模糊, 而且还会检测出一些伪边缘, 所以检测精度比较低, 该类算子比较适用于图像边缘灰度值比较尖锐,且图像噪声比较小的情况。

SixE2yXPq5Laplace算子首先通过高斯函数对图像进行平滑处理, 因此对噪声的抑制作用比较明显, 但同时也可能将原有的边缘也平滑了, 造成某些边缘无法检测到,。

此外高斯分布因子σ的选择对图像边缘检测效果有较大的影响。

σ越大, 检测到的图像细节越丰富, 但抗噪能力下降, 从而出现伪边缘, 反之则抗噪能力提高, 但边缘检测精度下降, 易丢失许多真边缘, 因此, 对于不同图像应选择不同参数。

6ewMyirQFLCanny 算子也采用高斯函数对图像进行平滑处理, 因此具有较强的去噪能力, 但同样存在容易平滑掉一些边缘信息, 其后所采用的一阶微分算子的方向性较Laplace算子要好,因此边缘定位精度较高。

该算子与其它边缘检测算子的不同之处在于, 它使用2 种不同的阈值分别检测强边缘和弱边缘, 并且仅当弱边缘与强边缘相连时才将弱边缘包含在输出图像中, 因此这种方法较其它方法而言不容易被噪声“填充”,更容易检查出真正的弱边缘。

通过实验结果可以看出,该算子在上述几种边缘检测算子当中效果最好。

kavU42VRUs <参考文档:基于MATLAB的遥感图像边缘检测算子的实验比较分析)申明:所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。

相关主题