数字图像处理课设图像的锐化_数字图像处理之锐化处理

本文介绍了数字图像处理中的锐化处理,包括拉普拉斯算子和Sobel算子的应用。通过实例展示了如何使用这两种算子对图像进行锐化滤波,对比分析了不同尺寸模板对图像锐化效果的影响,揭示了模板大小和变化状态对图像边缘特征提取的显著作用。
摘要由CSDN通过智能技术生成

数字图像处理之锐化处理

by方阳

版权声明:本文为博主原创文章,转载请指明转载地址

今天介绍图像的锐化处理

相关知识:拉普拉斯算子、sobel算子、锐化滤波

1.理论知识

拉普拉斯算子是一个是n维欧几里德空间中的一个二阶微分算子,它的定义如下:

在x方向上

在y方向上

合起来就是

拉普拉斯强调的是图像中灰度的突变,并不强调图像的灰度缓变(灰度缓变由一阶微分,也就是梯度,图像应用是sobel算子,具体下面介绍)

根据上边的表达式,可以确定拉普拉斯算子的模板

例如:

[ 0 1 0

1 -4 0

0  1  0]

这是以90度增量旋转的拉普拉斯算子,如果以45度增量旋转会是怎样的结果呢,结果如下:

[1 1 1

1 -8 1

1  1 1]

注:这里的旋转是绕算子的中心

然后说说sobel算子,它的定义是

那么怎样理解呢,这里插个链接,对sobel算子的推导、说明、应用和参考代码都有,个人觉得非常不错。

http://blog.csdn.net/tonyshengtan/article/details/43698711

2.本次内容

2.1任意选择一副灰度图像,使用拉普拉斯算子对图像进行锐化滤波,并和原图像叠加,实现对图像的增强。

2.2任意选择一副图像,使用 sobel 算子对图像进行锐化滤波,观察滤波效果。

2.3任意选择一副图像,构造一个中心系数为-24 的 5×5

的类似于拉普拉斯模板对图像进行锐化,与中心系数为-8 的 3×3 拉普拉斯算子的结果相比,是否能得到更加清晰的结果?

2.1 锐化之拉普拉斯算子

参考代码:

Laplace=[0 1 0;1 -4 1;0 1 0];

I=imread('cameraman.tif');

I1=fy_Sharpen_filter(I,Laplace,2);

I2=I+I1;

figure;

subplot(1,3,1);

imshow(I);

title('原图');

subplot(1,3,2);

imshow(I1);

title('拉普拉斯锐化输出');

subplot(1,3,3);

imshow(I2);

title('与原图叠加');

fy_Sharpen_filter函数参考代码:

%image_in为输入图像,Operator是算子,image_out为输出图像

function image_out=fy_Sharpen_filter(image_in,Operator,dimension)

[m,n]=size(image_in);

[a,b]=size(Operator);

if dimension==3

n=n/3;%由于我的灰度图像是185x194x3的,所以除了3,你们如果是PxQ的,就不要加了

end

A=zeros(m+2*(a-1),n+2*(b-1));%构造矩阵

B=A;%用来存放均值后A的值

C=zeros(m,n);%存最后的输出结果

for i=a:m+a-1

for j=b:n+b-1

A(i,j)= image_in(i-a+1,j-b+1);%填充图像到A

end

end

[L,T]=size(A);

%以下是实现均值相关运算

for i=1:L-a+1

for j=1:T-b+1

for p=1:a

for q=1:b

B(i+(a-1)/2,j+(b-1)/2)=B(i+(a-1)/2,j+(b-1)/2)+A(p+i-1,q+j-1)*Operator(p,q);

end

end

end

end

B=uint8(B/(a*b));

for x=a:m+a-1

for y=b:n+b-1

C(x-a+1,y-b+1)=B(x,y);

end

end

image_out=uint8(C);

运行结果:

2.2 锐化之sobel算子

参考代码:

Sobel_x=[-1 -2 -1;0 0 0;1 2 1];

Sobel_y=[-1 0 1;-2 0 2;-1 0 1];

I3=imread('cameraman.tif');

I4=fy_Sharpen_filter(I3,Sobel_x,2);

I5=fy_Sharpen_filter(I3,Sobel_y,2);

figure;

subplot(1,3,1);

imshow(I3);

title('原图');

subplot(1,3,2);

imshow(I4);

title('sobel水平锐化输出');

subplot(1,3,3);

imshow(I5);

title('sobel垂直锐化输出');

实验结果:

2.3 5x5与3x3

参考代码:

Laplace3x3=[ 1 1 1;

1 -8 1;

1 1 1];

Laplace5x5=[ 0 0 2 0 0;

0 4 0 4 0;

2 0 -24 0 2;

0 4 0 4 0;

0 0 2 0 0];

I6=imread('circuit.jpg');

I7=fy_Sharpen_filter(I6,Laplace3x3,3);

I8=fy_Sharpen_filter(I6,Laplace5x5,3);

figure;

subplot(1,3,1);

imshow(I6);

title('原图');

subplot(1,3,2);

imshow(I7);

title('Laplace3x3');

subplot(1,3,3);

imshow(I8);

title('Laplace5x5');

运行结果:

3.结果分析

(1)由图一可看出,拉普拉斯算子可提取出了图像的边缘特征,与原图叠加后新的图形的边缘被增强了

(2)由图二可看出,sobel算子的横向锐化模板和纵向锐化模板得出结果不相同,横向锐化得出的图形也偏横向,纵向偏纵向;

(3)由图三可看出,laplace5X5的锐化结果明显比laplace3X3的结果更加清晰,原因一个是模板大小,另一个是模板的变化状态,laplace5X5比laplace3X3的模板大且变化幅度大,锐化出的特征也就越明显。

最后,才学疏浅,如有不当地方还请海涵,感谢指点!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值