图像的边缘检测
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理实验报告
实验三图像的边缘检测
1 实验目的
1)掌握matlab的基本操作。
2)图像的边缘进行提取,通过对边缘的分析来分析图像的特征。
3)学习图像边缘检测的原理,观察算法处理结果。
2 实验设备
1)PC计算机
2)matlab软件
3)实验所需要的图片
3 实验步骤
(1)使用imread函数读取一幅RGB图像,并输出显示该图像;
(2)由于MATLAB对彩色图像不能进行分析,所以,要将图像首先进行灰度处理;
(3)对灰度处理后的图像依次进行Sobel算子,Prewitt算子,Roberts算子,Laplace算子和Canny算子运算;
(4)根据对图像观察分析,得出结论。
4 matlab程序
I=imread('E:\10.jpg ');
subplot(3,3,1);
imshow(I);title('1 原图像');
J=rgb2gray(I);
subplot(3,3,2);
imshow(J);title('2 灰度图');
K=imadjust(J,[40/255 1]);
subplot(3,3,3)
imshow(K);title('3 调整灰度后的图');
I1=edge(K,'sobel');
subplot(3,3,4);
imshow(I1);title('4 Sobel算子');
I2=edge(K,'prewitt');
subplot(3,3,5);
imshow(I2);title('5 Prewitt算子');
I3=edge(K,'robert');
subplot(3,3,6);
imshow(I3);title('6 Robert算子');
I4=edge(K,'log');
subplot(3,3,7);
imshow(I4);title('7 Laplace算子');
I5=edge(K,'canny');
subplot(3,3,8);
imshow(I5);title('8 Canny算子');
5 实验结果与分析
1 原图像
2 灰度图
3 调整灰度后的图
4 Sobel算子
5 Prewitt算子
6 Robert算子
7 Laplace算子8 Canny算子
通过观察分析图像,可知,Prewit t 算子和Sobel 算子都是对图像进行差分和滤波运算,仅在平滑部分的权值选择上有些差异,但是图像产生了一定的模糊, 而且有些边缘还检测不出来,所以检测精度比较低, 该类算子比较适用于图像边缘灰度值比较明显的情况。
Robert s 算子检测精度比较高, 但容易丢失一部分边缘, 使检测的结果不完整,同时图像没经过平滑处理,不能抑制噪声,所以该算子对具有陡峭的低噪声图像响应最好。
Laplace算子通过高斯函数对图像进行了平滑处理,对噪声的抑制作用比较明显, 但处理的同时也可能将原有的边缘平滑, 造成某些边缘无法检测到。此外,噪声对其影响也较大,检测到的图细节很丰富,同时就可能出现伪边缘。但是,如果要降低伪边缘的话,又可能使检测精度下降,丢失很多真边缘。因此, 对于不同图像应选择不同参数。
Canny 算子也采用高斯函数对图像进行平滑处理,也具有较强的去噪能力, 但同样可能会丢失一些边缘信息,但是,从图中可以看出,Canny 算子比Laplace 算子的检测边缘的精度要高些。通过实验结果可以看出,该算子在上述几种边缘检测算子当中效果最好。