遥感图像处理实验报告_图像的空间域滤波处理

上传人:新** 文档编号:512239041 上传时间:2023-04-02 格式:DOCX 页数:6 大小:1.96MB
返回 下载 相关 举报
遥感图像处理实验报告_图像的空间域滤波处理_第1页
第1页 / 共6页
遥感图像处理实验报告_图像的空间域滤波处理_第2页
第2页 / 共6页
遥感图像处理实验报告_图像的空间域滤波处理_第3页
第3页 / 共6页
遥感图像处理实验报告_图像的空间域滤波处理_第4页
第4页 / 共6页
遥感图像处理实验报告_图像的空间域滤波处理_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《遥感图像处理实验报告_图像的空间域滤波处理》由会员分享,可在线阅读,更多相关《遥感图像处理实验报告_图像的空间域滤波处理(6页珍藏版)》请在金锄头文库上搜索。

1、遥感图像处理实验报告(2013 2014 学年第1学期)实验名称: 图像的空间域滤波处理 实验时间: 实验地点: 指导教师: 专业班级: 姓 名: 学 号: 一:实验目的掌握Matlab编程语言的基本语法掌握Matlab中imread()、imfilter()、imshow()、mat2gray()、等相关函数的用法及意义通过Matlab程序语言完成图像的空间域滤波处理,以达成边缘检测的目的二:实验内容在Matlab中,分别运用经典一阶梯度、Robert算子、Sobel算子、Prewitt算子及Laplacian算子进行目标图像的边缘检测,互相对比实验结果,分析差异三:实验平台Windows

2、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 =

3、 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方向上的处理结果进行几何平均,作为处理结果Im

4、ageYjtd= sqrt(ImageYjtdx.2 + ImageYjtdy.2);%figure()函数创建一个绘图窗口figure(2);%绘制处理后的图像%在用imshow()函数显示图像时要注意,因为现在的处理结果是double类型的,而不是unit8类型%而imshow()在显示图像时,只有unit8类型的矩阵图像数据可以直接输入直接显示%而对于double类型的矩阵,imshow()认为其灰度空间是从0到1,而不是从0-256或其它%也就是说,对于double类型的矩阵,imshow()函数不知道矩阵所代表的图像的灰度级数是多少%这时就需要用mat2gray()函数对double

5、型矩阵做归一化,所谓归一化,就是把原矩阵中的数据%映射至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

6、, 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 =

7、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(ImagePrewi

8、tt1.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(

9、Laplacian算子处理结果);%五:实验结果(仅列一例)六:实验心得1:Matlab部分Matlab是一个命令行式的、解释式的程序语言,学习难度低,在矩阵和数字处理上处速度也很快,有时间我会继续学习2:滤波算子部分1):Laplacian算子对噪声比较敏感,图像颗粒感较强时得到的处理结果很差,在几乎没有噪声的图像中,Laplacian算子的处理结果却出奇的好。或许在用Laplacian算子处理之前,进行一次平滑处理会更好一些。2):相较Prewitt算子来说,Sobel算子对像素位置的影响做了加权,因此在处理结果上,Sobel显得比Prewitt稍好一些3):Robert算子处理出的图像,相较其它算子来说,边缘不够平滑,直观上感觉比较粗糙4):没有设置阈值的Prewitt算子的处理结果中,包含了更多的非边缘信息,说明Prewitt算子对灰度变化比较敏感,这在边缘检测中会导致过多的误判。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号