实验二 图像空域锐化增强
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理实验报告
姓名:田蕾 学号:20091202098 专业:信号与信息处理 年级:09
实验二 图像空域平滑滤波
一、 实验目的
理解图象锐化的概念,掌握常用空域锐化增强技术。进一步加深理解和掌握图像锐化的原理和具体算法。理解图象锐化增强的处理过程和特点。
二、 实验内容
1、一阶微分锐化增强
设计程序,分别实现Roberts 、Sobel 、Priwitt 算子的锐化处理。观察处理前后图像效果,分析实验结果和算法特点。
2、拉普拉斯锐化增强
设计程序,实现拉普拉斯图像和原始图像叠加的增强处理,即
{
2
2(,)(,)(,)(,)
(,)
f x y f x y f x y f x y
g x y -
+∇∇ (拉普拉斯模板中心系数为负和拉普拉斯模板中心系数为正) 观察处理前后图像效果,分析实验结果和算法特点。
三、 实验原理
Roberts 、Sobel 、Priwitt 算子都是突出图像的细节或者是增强被模糊了的细节。因此要对图像实现锐化处理,可以用空间微分来完成,但是,这样图像的微分增强了边缘和其他的突变(如噪声)并削弱了灰度变化缓慢区域。
拉普拉斯算子具有各向同性的特点,这种滤波器的响应与滤波器作用的图像的突变方向无关。即各向同性滤波器旋转不变,原图像旋转后进行滤波后处理给出的结果与先对图像滤波然后再进行旋转地结果相同。
四、 算法设计(含程序设计流程图)
五、 实验结果及分析(需要给出原始图像和处理后的图像)
原图
Roberts 算子锐化处理后图像
叠加图
原图
sobel 算子锐化处理后图像
叠加图
原图
P r w t t 算子锐化处理后的图像
叠加图
原图
L a p a c e 算子锐化处理后图像
叠加图
实验结果分析:(1)Roberts 算子,Sobel 算子和Priwitt 算子用来实现消除图像模糊地增强的方法。即“锐化”。此处理是为了加强图像的边界和细节。Roberts 算子提出的是在2*2的邻域上计算对角导数,Sobel 算子提出了一种将方向差分局部均匀相结合的方法。常用的即为在3*3邻域上计算x 和y 方向的偏导数。Priwitt 算子也是在3*3邻域内计算偏微分估计值。实际上,不同的算子对应不同的卷积核,他们产生的偏导数在图像处理中心点上用均值或是绝对值求和的形式结合起来。但是这类算法增强噪声的缺陷也在图像中体现了。(2)Laplacian 算子是一个标量,具有各向同性的性质。对噪声更加敏感,会使噪声成分急速增强。因此在实际应用中通常在进行平滑操作的同时进行二阶微分,效果比较的好。
附:程序源代码
(1)Roberts 算子处理:
I=imread('D:\Matlab\project\一阶微分空域锐化实验原图.jpg');
I=im2double(I); figure;
imshow(I);title('原图')
[height width R]=size(I);
for i=2:height-1
for j=2:width-1
R(i,j)=abs(I(i+1,j+1)-I(i,j))+abs(I(i+1,j)-I(i,j+1));
end
end
figure;
imshow(R,[]);
T=R;
for i=1:height-1
for j=1:width-1
if (R(i,j)<0.25)
R(i,j)=1;
else R(i,j)=0;
end
end
end
figure;
imshow(R,[]);
title('Roberts算子锐化处理后图像');
[m,n]=size(T);
AR(1:m,1:n)=I(1:m,1:n)+T(1:m,1:n);
figure;
imshow(AR);title('叠加图');
(2)Sobel算子:
I=imread('D:\Matlab\project\一阶微分空域锐化实验原图.jpg');
I=im2double(I);
figure;
imshow(I);title('原图')
[height width R]=size(I);
%Dx=[-1 -2 -1
%0 0 0
%1 2 1];
%Dy=[-1 0 1
%-2 0 2
%-1 0 1];
for i=2:height-1
for j=2:width-1
Dx=[I(i+1,j-1)-I(i-1,j-1)]+2*[I(i+1,j)-I(i-1,j)]+[I(i+1,j+1)-I(i-1,j+1)];
Dy=[I(i-1,j+1)-I(i-1,j-1)]+2*[I(i,j+1)-I(i,j-1)]+[I(i+1,j+1)-I(i+1,j-1)];
S(i,j)=sqrt(Dx^2+Dy^2);
end
figure;
imshow(S);
T=S;
for i=1:height-1
for j=1:width-1
if (S(i,j)<0.6)
S(i,j)=1;
else S(i,j)=0;
end
end
end
figure;
imshow(S,[]);
title('sobel算子锐化处理后图像')
[m,n]=size(T);
AS(1:m,1:n)=I(1:m,1:n)+T(1:m,1:n);
figure;
imshow(AS);title('叠加图');
(3)Priwitt算子锐化处理:
I=imread('D:\Matlab\project\一阶微分空域锐化实验原图.jpg');
I=im2double(I);
figure;
imshow(I);title('原图')
[height width R]=size(I);
for i=2:height-1
for j=2:width-1
Dx=[I(i+1,j-1)-I(i-1,j-1)]+[I(i+1,j)-I(i-1,j)]+[I(i+1,j+1)-I(i-1,j+1)];
Dy=[I(i-1,j+1)-I(i-1,j-1)]+[I(i,j+1)-I(i,j-1)]+[I(i+1,j+1)-I(i+1,j-1)];
P(i,j)=sqrt(Dx^2+Dy^2);
end
end
figure;
imshow(P,[]);
T=P;
for i=1:height-1
for j=1:width-1
if (P(i,j)<0.4)
P(i,j)=1;
else P(i,j)=0;
end
end