遥感图像处理实验报告图像的空间域滤波处理.docx_第1页
遥感图像处理实验报告图像的空间域滤波处理.docx_第2页
遥感图像处理实验报告图像的空间域滤波处理.docx_第3页
遥感图像处理实验报告图像的空间域滤波处理.docx_第4页
遥感图像处理实验报告图像的空间域滤波处理.docx_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

遥感图像处理实验报告(2013 2014 学年第1学期)实验名称: 图像的空间域滤波处理 实验时间: 实验地点: 指导教师: 专业班级: 姓 名: 学 号: 一:实验目的掌握Matlab编程语言的基本语法掌握Matlab中imread()、imfilter()、imshow()、mat2gray()、等相关函数的用法及意义通过Matlab程序语言完成图像的空间域滤波处理,以达成边缘检测的目的二:实验内容在Matlab中,分别运用经典一阶梯度、Robert算子、Sobel算子、Prewitt算子及Laplacian算子进行目标图像的边缘检测,互相对比实验结果,分析差异三:实验平台Windows 7 Ultimate SP1Matlab 2012b四:实验代码及Matlab使用心得(注释中)%清空工作空间clc;%清屏clear all;%关闭所有绘图窗口close all;%定义一个矩阵 I 用来存储待处理图像,用imread()函数读取的数据格式为unit8I = imread(C:UsersAdministratorDesktopMatlabdatabarbara.png);%创建一个绘图窗口,并显示原图像figure(1);imshow(I);title(原图);%把unit8格式数据转换为doulbe格式,以便滤波计算I = double(I);%经典一阶梯度%yjtdx = 0 0 0; -1 1 0; 0 0 0;yjtdy = 0 -1 0; 0 1 0; 0 0 0;%imfilter()函数为一个滤波函数%其中有两个参数,外加一系列附加指令%如下中的 I 代表被处理图像%yjtdx 代表滤波器%replicate是一个附加指令,因为处理过的数据,可能会超出原图像数据大小的上下限%这个附加指令 令超出上下限的数据为最接近上下限的数据ImageYjtdx = imfilter(I, yjtdx, replicate);ImageYjtdy = imfilter(I, yjtdy, replicate);%将x与y方向上的处理结果进行几何平均,作为处理结果ImageYjtd= sqrt(ImageYjtdx.2 + ImageYjtdy.2);%figure()函数创建一个绘图窗口figure(2);%绘制处理后的图像%在用imshow()函数显示图像时要注意,因为现在的处理结果是double类型的,而不是unit8类型%而imshow()在显示图像时,只有unit8类型的矩阵图像数据可以直接输入直接显示%而对于double类型的矩阵,imshow()认为其灰度空间是从0到1,而不是从0-256或其它%也就是说,对于double类型的矩阵,imshow()函数不知道矩阵所代表的图像的灰度级数是多少%这时就需要用mat2gray()函数对double型矩阵做归一化,所谓归一化,就是把原矩阵中的数据%映射至0-1的数据空间中,这时,经mat2gray()函数处理过的矩阵,其中所有元素都在0-1范围内%再用imshow()函数进行显示,才可得到正常的显示结果imshow(mat2gray(ImageYjtd);title(经典一阶梯度处理结果);%Robert算子%Robert1 = -1 0 0; 0 1 0 0 0 0;Robert2 = 0 -1 0; 1 0 0 0 0 0;ImageRobert1 = imfilter(I, Robert1, replicate);ImageRobert2 = imfilter(I, Robert2, replicate);ImageRobert = sqrt(ImageRobert1.2 + ImageRobert2.2);figure(3);imshow(mat2gray(ImageRobert);title(Robert算子处理结果);%Sobel算子%Sobel1 = 1 2 1; 0 0 0; -1 -2 -1;Sobel2 = -1 0 1; -2 0 2; -1 0 1;ImageSobel1 = imfilter(I, Sobel1, replicate);ImageSobel2 = imfilter(I, Sobel2, replicate);ImageSobel = sqrt(ImageSobel1.2 + ImageSobel2.2);figure(4);imshow(mat2gray(ImageSobel);title(Sobel算子处理结果);%Prewitt算子%Prewitt1 = -1 -1 -1; 0 0 0; 1 1 1;Prewitt2 = -1 0 1; -1 0 1; -1 0 1;ImagePrewitt1 = imfilter(I, Prewitt1, replicate);ImagePrewitt2 = imfilter(I, Prewitt2, replicate);ImagePrewitt = sqrt(ImagePrewitt1.2 + ImagePrewitt2.2);figure(5);imshow(mat2gray(ImagePrewitt);title(Prewitt算子处理结果);%Laplacian算子%Laplacian = 0 -1 0; -1 4 -1; 0 -1 0;ImageLaplacian = imfilter(I, Laplacian, replicate);%滤波结果中可能出现负数,因此需要用abs()函数取绝对值ImageLaplacian = abs(ImageLaplacian);figure(6);imshow(mat2gray(ImageLaplacian);title(Laplacian算子处理结果);%五:实验结果(仅列一例)六:实验心得1:Matlab部分Matlab是一个命令行式的、解释式的程序语言,学习难度低,在矩阵和数字处理上处速度也很快,有时间我会继续学习2:滤波算子部分1):Laplacian算子对噪声比较敏感,图像颗粒感较强时得到的处理结果很差,在几乎没有噪声的图像中,Laplacian算子的处理结果却出奇的好。或许在用Laplacian算子处理之前,进行一次平滑处理会更好一些。2):相较Prewitt算子来说,Sobel算子对像素位置的影响做了加权,因此在处理结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论