一、实验目的:
①掌握图像锐化的概念;
②掌握Prewitt 算子对图像进行锐化的原理、过程;
③熟悉Matlab 编程。
二、实验内容:
①利用Prewitt 算子对图像进行锐化处理;
②掌握Maltab 中和图像锐化相关的函数。
三、实验原理:
①利用Prewitt 算子对图像进行锐化处理;
②掌握Maltab 中和图像锐化相关的函数。
三、实验原理:
图像锐化处理是改善图像视觉效果的手段,用来对图像的轮廓或边缘进行增强,减弱或消除低分频率分量而不影响高频分量。
图像锐化处理的主要技术体现在空域和频域的高通滤波,而空域高通滤波主要用模版卷积来实现。
(一)梯度算子法
在图像处理中,一阶导数通过梯度来实现,因此利用一阶导数检测边缘点的方法就称为梯度算子法。
梯度值正比于像素之差。
对于一幅图像中突出的边缘区,其梯度值较大;在平滑区域梯度值小;对于灰度级为常数的区域,梯度为零。
下面给出的平滑梯度算子法具有噪声抑制作用。
1、Prewitt 梯度算子法(平均差分法)
因为平均能减少或消除噪声,Prewitt 梯度算子法就是先求平均,再求差分来求梯度。
水平和垂直梯度模板分别为:
利用检测模板可求得水平和垂直方向的梯度,再通过梯度合成和边缘点判定,就可得到平均差分法的检测结果。
四、实验步骤:
I=imread('Miss.bmp');
figure;
imshow(I);
title('原始图像');
II=eye(258,258);
for i=2:257
for j=2:257
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=∙101101101x d ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=∙111000111y d
II(i,j)=I(i-1,j-1);
end
end
II(2:257,1)=I(:,2);
II(2:257,258)=I(:,255);
II(1,:)=II(3,:);
II(258,:)=II(256,:);
IX=zeros(256,256);
IY=zeros(256,256);
H1=[-1 0 1 -1 0 1 -1 0 1]';
H2=[-1 -1 -1 0 0 0 1 1 1]';
for i=2:257
for j=2:257
Block1=II(i-1:i+1,j-1:j+1);
X1=Block1(:);
sum1=sum(X1.*H1);
sum2=sum(X1.*H2);
IX(i,j)=sum1;
IY(i,j)=sum2;
end
end
figure;
IX=-IX;
IY=-IY;
imshow(IX,[0 255]);
title('垂直锐化');
figure;
imshow(IY,[0 255]);
title('水平锐化');
RT=(IX.^2+IY.^2).^(1/2);
figure;
imshow(RT,[0 255]);
title('最终锐化结果');
五、实验结果(显示所图像,并标明是什么图像):
图1 原始图像
2 水平锐化
3 垂直锐化
4 最终锐化结果
六、实验小结:
数字图像处理中图像锐化应从水平和垂直两个方向进行,最后的锐化结果由水平和垂直锐化结果共同得到,锐化结果一方面是模糊的图像变得清晰了,另一方面提取了目标物体的边界,对图像进行分割。
锐化的图像质量有所改变,更适合观察、识别。