数字图像处理实验记录五(图像的空间域增强-锐化处理)

前言:

一、基础知识

1,什么是锐化?

百度到:图像锐化(image sharpening)是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰,分为空间域处理和频域处理两类。
在我看来,锐化就是将图像的边缘进行增强。

2,为什么要锐化?

既然锐化是将图像边缘增强,那么我认为往往是图像边缘模糊的时候需要进行锐化。在上一个实验中我们学到了平滑处理滤波器,不难发现滤波器往往会在清除噪声的时候让我们的图像变得模糊,所以我认为在我们处理完噪声以后就可以通过锐化来增强边缘。如下:
在这里插入图片描述
虽然锐化后不是很清晰,但至少边缘明显了很多

3,怎么进行锐化?

锐化是增强边缘,那么首先我们就要找到边缘,接下来关键的部分就是怎么找边缘了。
什么是边缘?在图像的一个区域内,出现了灰度的突变,突然变小或突然变大,这里突变的中间区域就是边缘。
在这里插入图片描述
怎么找边缘?
在计算机里是一个像素一个像素进行处理,怎么处理?这里就提到了几种算子(在我看来就是一种计算的模板方法):
在这里插入图片描述
以4领域的Laplacian算子为例:对于一个像素f(i,j),我们就使用它的上下左右四个像素和它自身进行运算得到g(i,j):
在这里插入图片描述
如果4领域的像素值都和中心差不多,那么g(i,j)最后的值就是0,显示是黑色,g(i,j)越大,就越白,最后处理完得到的g,就是边缘图像。
在这里插入图片描述
边缘检测函数sharpen_value():

function [Ig] = sharpen_value(S,kind)
% 锐化函数 输入S,锐化算子 kind
if(~exist('kind','var'))
    kind = -1;  % 如果未出现该变量,则对其进行赋值
end
[m,n] = size(S);

if(kind == -1)%拉普拉斯4
    H = [0,-1,0;
         -1,4,-1;
         0,-1,0];
elseif(kind == 0)%拉普拉斯8
    H = [-1,-1,-1;
         -1,8,-1;
         -1,-1,-1];
elseif(kind == 1)%prewitt 横
    H = [1,1,1;
        0,0,0;
        -1,-1,-1];
elseif(kind == 2)%prewitt 竖
    H = [1,0,-1;
        1,0,-1;
        1,0,-1];
elseif(kind == 3)%Sobel 竖
    H= [1,2,1;
        0,0,0;
        -1,-2,-1];
elseif(kind == 4)%Sobel 竖
    H= [1,0,-1;
        2,0,-2;
        1,0,-1];
elseif(kind == 5)
    H= [1,0,0;
        0,-1,0;
        0,0,0];

end
a=1;
S = im2double(S);
Ig =S;

for i=2:m-1
    for j=2:n-1
        if(kind == 5)
            Ig(i,j) = abs(S(i,j)-S(i+1,j+1))+abs(S(i+1,j)-S(i,j+1));
        else
            Ig(i,j) = 0;
            for a = -1:1
                for b = -1:1
                    Ig(i,j) = Ig(i,j)+H(a+2,b+2)*S(i+a,j+b);     
                end
            end
            if(Ig(i,j)<0)
                Ig(i,j) = 0;
            end
        end
        Ig(i,j) = uint8(Ig(i,j)*255);
    end
end
Ig = uint8(Ig);


end

最后将边缘图和原图相加,就可以实现边缘增强了。

二、实验要求

任务1:

利用Laplacian 锐化算子(α=-1)对256 级灰度的数字图像进行锐化处理,显示处理前、后图像。

任务2:

在添加了噪声的图像上进行拉普拉斯锐化处理,和未添加噪声图像的处理结果进行比较。

任务3:

分别利用Roberts、Prewitt 和Sobel 边缘检测算子,对数字图像进行边缘检测,计算图像梯度图。显示图像x和y方向偏导图像和梯度幅值图像。

三、实验记录:

任务1:

利用Laplacian 锐化算子(α=-1)对256 级灰度的数字图像进行锐化处理,显示处理前、后图像。

figure('NumberTitle','off','Name','任务1');
I = imread('stone.jpg');
I2 = sharpen_value(I,-1);
I2 = I2+I;
subplot(1,2,1);imshow(I);title('原图');
subplot(1,2,2);imshow(I2);title('增强后');

任务2:

在添加了噪声的图像上进行拉普拉斯锐化处理,和未添加噪声图像的处理结果进行比较。

figure('NumberTitle','off','Name','任务2');
Ib = imnoise(I,'salt',0.02);%添加椒盐噪声
I3 = sharpen_value(Ib,-1);
I3 = I3+Ib;
subplot(1,2,1);imshow(I2);title('原图增强图');
subplot(1,2,2);imshow(I3);title('噪声增强图');

任务3:

分别利用Roberts、Prewitt 和Sobel 边缘检测算子,对数字图像进行边缘检测,计算图像梯度图。显示图像x和y方向偏导图像和梯度幅值图像。

figure('NumberTitle','off','Name','任务3');
I = rgb2gray(I);
H1 = sharpen_value(I,5);
H2 = sharpen_value(I,2);
H3 = sharpen_value(I,3);
subplot(2,2,1.5);imshow(H1);title('Roberts图像梯度图');
subplot(2,2,3);imshow(H2);title('Prewitt x方向偏导');
subplot(2,2,4);imshow(H3);title('Sobel y方向偏导');

四、结果展示

任务1:

利用Laplacian 锐化算子(α=-1)对256 级灰度的数字图像进行锐化处理,显示处理前、后图像。
在这里插入图片描述

任务2:

在添加了噪声的图像上进行拉普拉斯锐化处理,和未添加噪声图像的处理结果进行比较。
可以明显看出噪声对锐化的影响很大。
椒盐噪声:
在这里插入图片描述
高斯噪声:
在这里插入图片描述

任务3:

分别利用Roberts、Prewitt 和Sobel 边缘检测算子,对数字图像进行边缘检测,计算图像梯度图。显示图像x和y方向偏导图像和梯度幅值图像。
在这里插入图片描述

五、反思总结与收获

对Laplacian锐化算子的处理结果中,对小于0的部分,采用不同的方法标准化到[0,255]时,图像的显示效果有什么不同?为什么?
在我看来有两种方法来标准化:1,取绝对值。2,取0。
改了改函数,让我们看看效果:

1,取绝对值:

在这里插入图片描述
边缘:
在这里插入图片描述

2,取0:

在这里插入图片描述
边缘:
在这里插入图片描述

总结:

取绝对值:负值转正值,会增加对比度,但可能导致某些细节过度增强,看起来更加锐利。会引入图像中的一些噪声或产生不自然的效果。
取0:负值保持为零,因此对比度不会显著增加。这种方法可以保留一些图像细节,但可能不会产生像绝对值标准化那样强烈的锐化效果。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泉绮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值