数字图像处理_边缘检测算子与锐化算子(含MATLAB代码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理实验五
15生医
一、实验内容
对某一灰度图像,进行如下处理:
(1)分别用Roberts、Prewitt和Sobel边缘检测算子进行边缘检测;(2)将Roberts、Prewitt和Sobel边缘检测算子修改为锐化算子,对原图像进行锐化,同屏显示原图像、边缘检测结果和锐化后图像,说明三者之间的关系。一灰度图像的二值化。
二、运行环境
MATLAB R2014a
三、运行结果及分析
运行结果如图所示:可以观察出原图像、边缘检测结果和锐化后图像三者之间的关系为:原图像+边缘检测结果=锐化后图像
四、心得体会
通过MATLAB编程更加熟悉了课本上关于锐化与边缘检测的相关知识
点,对二者的关系也有了具体的认识。同时,对MATLAB图像导入函数、图像边缘检测函数、锐化窗口矩阵卷积函数的调用及实现机理也有所掌握,比如后边附的程序中会提到的“%”标注的思考。
五、具体程序
size=512;
Img_rgb=imread('E:\lena.jpg'); %读取图像
Img_gray=rgb2gray(Img_rgb); %进行RGB到灰度图像的转换(虽然原来在网上下载的lena就是黑白图像,但是这一步必须要有!否则处理结果不正确)
figure(1);
subplot(2,3,1);
imshow(Img_gray);
title('原图像');
Img_edge=zeros(size);
a={'roberts','prewitt','sobel'};
for i=1:3
Img_edge=edge(Img_gray,a{i});
figure(1);
subplot(2,3,i+1);
imshow(Img_edge);
axis image;
title(a(i));
end
A=imread('E:\lena.jpg');
B=rgb2gray(A);
B=double(B);
Window=[-1 -1 -1;-1 9 -1;-1 -1 -1]; %八邻域拉普拉斯锐化算子(α取1)
C=conv2(B,Window,'same');
Img_sharp=uint8(C);
subplot(2,3,5);
imshow(Img_sharp);
title('sharp');