数字图像处理报告(完成版)

上传人:206****923 文档编号:37515374 上传时间:2018-04-17 格式:DOC 页数:19 大小:1,018KB
返回 下载 相关 举报
数字图像处理报告(完成版)_第1页
第1页 / 共19页
数字图像处理报告(完成版)_第2页
第2页 / 共19页
数字图像处理报告(完成版)_第3页
第3页 / 共19页
数字图像处理报告(完成版)_第4页
第4页 / 共19页
数字图像处理报告(完成版)_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《数字图像处理报告(完成版)》由会员分享,可在线阅读,更多相关《数字图像处理报告(完成版)(19页珍藏版)》请在金锄头文库上搜索。

1、数字图像处理实验报告数字图像处理实验报告姓名: 班级: 学号: 专业: 指导教师: 实验日期:实实验验一一 边边缘缘检检测测一一、基基本本原原理理本实验主要是对图像的边缘进行提取,通过对边缘的分析来分析图像的特征。首先,了解一些术语的定义:边缘点:图像中具有坐标 i,j且处在强度显著变化的位置上的点。边缘段:对应于边缘点坐标 i,j及其方位,边缘的方位可能是梯度角。边缘检测器:从图像中提取边缘(边缘点和边缘段)集合的算法。轮廓:边缘列表,或者是一条表示边缘列表的拟合曲线。边缘连接:从无序边缘表形成有序边缘表的过程,习惯上,边缘表的表示采用顺时针方向来排序。边缘跟踪:一个用来确定轮廓的图像(指滤

2、波后的图像)搜索过程。边缘就是图像中包含的对象的边界所对应的位置。物体的边缘以图像局部特性的不连续性的形式出现的,例如,灰度值的突变,颜色的突变,纹理结构的突变等。从本质上说,边缘就意味着一个区域的终结和另外一个区域的开始。图像边缘信息在图像分析和人的视觉中十分重要,是图像识别中提取图像特征的一个重要属性。边缘检测( edge detection)在图像处理和对象识别领域中都是一个重要的基本问题。由于边缘的灰度不连续性,可以使用求导数的方法检测到。最早的边缘检测方法都是基于像素的数值导数的运算。本实验主要是对图像依次进行Sobel 算子,Prewitt 算子,Roberts 算子,Laplac

3、e 算子和 Canny 算子运算,比较处理结果。边缘检测有三个共性准则,1,好的检测结果,或者说对边缘的误测率尽可能低,就是在图像边缘出现的地方检测结果中不应该没有;另一方面不要出现虚假的边缘。2,对边缘的定位要准确,也就是我们标记出的边缘位置要和图像上真正边缘的中心位置充分接近。3,对同一边缘要有尽可能低的响应次数,也就是检测响应最好是单像素的。二二、对对图图像像进进行行各各种种算算子子运运算算本实验中主要是对图像依次进行Sobel 算子,Prewitt 算子,Roberts 算子,Laplace算子和 Canny 算子运算。Matlab 代码:clear all; close all; w

4、arning off all;I = imread(cameraman.tif); %没有噪声时的检测结果 BW_sobel = edge(I,sobel); BW_prewitt = edge(I,prewitt); BW_roberts = edge(I,roberts); BW_laplace = edge(I,log); BW_canny = edge(I,canny); figure(1); subplot(2,3,1),imshow(I),xlabel(原始图像); subplot(2,3,2),imshow(BW_sobel),xlabel(sobel 检测); subplot(

5、2,3,3),imshow(BW_prewitt),xlabel(prewitt 检测); subplot(2,3,4),imshow(BW_roberts),xlabel(roberts 检测); subplot(2,3,5),imshow(BW_laplace),xlabel(laplace 检测); subplot(2,3,6),imshow(BW_canny),xlabel(canny 检测);%加入高斯噪声(=0,2=0.01)检测结果 I_g1 = imnoise(I,gaussian,0,0.01); BW_sobel = edge(I_g1,sobel); BW_prewitt

6、 = edge(I_g1,prewitt); BW_roberts = edge(I_g1,roberts); BW_laplace = edge(I_g1,log); BW_canny = edge(I_g1,canny); figure(2); subplot(2,3,1),imshow(I_g1),xlabel(加入高斯噪声(=0,2=0.01)图像); subplot(2,3,2),imshow(BW_sobel),xlabel(sobel 检测); subplot(2,3,3),imshow(BW_prewitt),xlabel(prewitt 检测); subplot(2,3,4)

7、,imshow(BW_roberts),xlabel(roberts 检测); subplot(2,3,5),imshow(BW_laplace),xlabel(laplace 检测); subplot(2,3,6),imshow(BW_canny),xlabel(canny 检测);%加入高斯噪声(=0,2=0.02)检测结果 I_g2 = imnoise(I,gaussian,0,0.02); BW_sobel = edge(I_g2,sobel); BW_prewitt = edge(I_g2,prewitt); BW_roberts = edge(I_g2,roberts); BW_l

8、aplace = edge(I_g2,log); BW_canny = edge(I_g2,canny); figure(3); subplot(2,3,1),imshow(I_g2),xlabel(加入高斯噪声(=0,2=0.02)图像); subplot(2,3,2),imshow(BW_sobel),xlabel(sobel 检测); subplot(2,3,3),imshow(BW_prewitt),xlabel(prewitt 检测); subplot(2,3,4),imshow(BW_roberts),xlabel(roberts 检测); subplot(2,3,5),imsho

9、w(BW_laplace),xlabel(laplace 检测); subplot(2,3,6),imshow(BW_canny),xlabel(canny 检测);实验结果:中 中 中 中sobel中 中prewitt中 中roberts中 中laplace中 中canny中 中中 中 中 中 中 中 (=0中 2=0.01)中 中sobel中 中prewitt中 中roberts中 中laplace中 中canny中 中中 中 中 中 中 中 (=0中 2=0.02)中 中sobel中 中prewitt中 中roberts中 中laplace中 中canny中 中三、实验分析三、实验分析:

10、通过对上述几种算子的研究,我们可以发现,Prewit t 算子和 Sobel 算子都是对图像进行差分和滤波运算,仅在平滑部分的权值选择上有些差异,但是图像产生了一定的模糊, 而且有些边缘还检测不出来,所以检测精度比较低, 该类算子比较适用于图像边缘灰度值比较明显的情况。Robert s 算子检测精度比较高, 但容易丢失一部分边缘, 使检测的结果不完整,同时图像没经过平滑处理,不能抑制噪声,所以该算子对具有陡峭的低噪声图像响应最好。Laplace 算子通过高斯函数对图像进行了平滑处理,对噪声的抑制作用比较明显, 但处理的同时也可能将原有的边缘平滑, 造成某些边缘无法检测到。此外,噪声对其影响也较

11、大,检测到的图细节很丰富,同时就可能出现伪边缘。但是,如果要降低伪边缘的话,又可能使检测精度下降,丢失很多真边缘。因此, 对于不同图像应选择不同参数。Canny 算子也采用高斯函数对图像进行平滑处理,也具有较强的去噪能力, 但同样可能会丢失一些边缘信息,但是,从图中可以看出,Canny 算子比 Laplace 算子的检测边缘的精度要高些。通过实验结果可以看出,该算子在上述几种边缘检测算子当中效果最好。通过上述实验结果我们可以发现,在加入高斯噪声以后,canny 算子的去噪能力减弱,对边缘检测的效果不太明显。相反,从图中可以发现 sobel 算子和 prewitt 算子对噪声的过滤作用较为明显。

12、基本上能够检测出较为完整的边缘信号。自编代码:clc; close all%图读取显示 c=imread(cameraman.tif); subplot(1,3,1); imshow(c) M,N=size(c); %得到一个 M+2*N+2 的矩阵,为模板卷积做准备 cc=zeros(M+2,N+2); %初始化矩阵 for i=1:Mfor j=1:Ncc(i+1,j+1)=c(i,j);end end cc(1,1)=c(1,1); %四个角的赋值 cc(1,M+2)=c(1,M); cc(M+2,1)=c(M,1); cc(M+2,N+2)=c(M,N); for i=1:M %四边的

13、赋值cc(i+1,1)=c(i,1); end for i=1:Ncc(1,i+1)=c(1,i); end for i=1:Ncc(M+2,i+1)=c(M,i); end for i=1:Mcc(i+1,N+2)=c(i,N); endc1=zeros(M,N); %初始化一个新矩阵,用来存放水平模板卷积后的值 c2=zeros(M,N); %初始化一个新矩阵,用来存放垂直模板卷积后的值 c3=zeros(M,N); %初始化一个新矩阵,用来存放以 2 为范数(欧式距离)计算的值 c4=zeros(M,N); %初始化一个新矩阵,用来存放以 1 为范数(城区距离)计算的值 %差分模板 d1

14、=-1,0,1;-1,0,1;-1,0,1; %水平模板 d2=1,1,1;0,0,0;-1,-1,-1; %垂直模板 %水平方向 for m=2:M+1 for n=2:N+1 c1(m-1,n-1)=(d1(1,1)*cc(m-1,n-1)+d1(1,2)*cc(m-1,n)+d1(1,3)*cc(m-1,n+1).+ d1(2,1)*cc(m,n-1)+d1(2,2)*cc(m,n)+d1(2,3)*cc(m,n+1)+.d1(3,1)*cc(m+1,n-1)+d1(3,2)*cc(m+1,n)+d1(3,3)*cc(m+1,n+1)/9; end end %垂直方向 for m=2:M

15、+1 for n=2:N+1 c2(m-1,n-1)=(d2(1,1)*cc(m-1,n-1)+d2(1,2)*cc(m-1,n)+d2(1,3)*cc(m- 1,n+1)+. d2(2,1)*cc(m,n-1)+d2(2,2)*cc(m,n)+d2(2,3)*cc(m,n+1)+d2(3,1)*cc(m+1,n- 1)+d2(3,2)*cc(m+1,n)+d2(3,3)*cc(m+1,n+1)/9; end end%以 2 为范数(欧式距离)计算的值 for i=1:Mfor j=1:Nc3(i,j)=abs(c1(i,j)+abs(c2(i,j);end end %结果显示 subplot

16、(1,3,2); imshow(uint8(c3); %由于之前已经转化为双精度,所以要用 uint8 显示。%以 1 为范数(城区距离)计算的值 for i=1:Mfor j=1:Nc4(i,j)=(c1(i,j)2+(c2(i,j)2)(1/2);end end %结果显示 subplot(1,3,3); imshow(uint8(c4); %由于之前已经转化为双精度,所以要用 uint8 显示。四、实验结果:四、实验结果:实验二实验二 数字图像的空间域滤波数字图像的空间域滤波一、实验目的一、实验目的1、 理解图像空间域滤波的原理; 2、 掌握图像均值滤波、中值滤波的原理与实现方法; 3、 掌握上述方法的改进方法。二、二、 实验原

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

当前位置:首页 > 行业资料 > 其它行业文档

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