MATLAB图像处理-图片的锐化增强(附代码)

锐化处理的目的:是突出图像中的细节或者增强被模糊了的细节.

锐化处理可以用空间微分来完成. 微分算子的响应强度与图像在该点的突变程度有关,图像微分增强了边缘和其他突变(如噪声)而消弱了灰度变化缓慢的区域.

我们最感兴趣的是微分算子在①恒定灰度区域(平坦段)、②突变的开头与结尾(阶梯与斜坡突变)以及③沿着灰度级斜坡处的特性

对于一阶微分必须保证:
1.平坦段微分值为零
2.在灰度阶梯或斜坡的起点处微分值非零
3.沿着斜坡面微分值非零

对于二阶微分必须保证:
1.在平坦区微分值为零
2.在灰度阶梯或斜坡的起始点处微分值非零
3.沿着斜坡面微分值为零

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
拉普拉斯算子定义为:
拉普拉斯算子
拉普拉斯模板可以是:
MATLAB图像处理-图片的锐化增强(附代码)_第1张图片
也可以是:
MATLAB图像处理-图片的锐化增强(附代码)_第2张图片
拉普拉斯微分算子强调图像中灰度的突变,弱化灰度慢变化的区域。这将产生一幅把浅灰色边线、突变点叠加到暗背景中的图像。
将原始图像和拉普拉斯图像叠加在一起的简单方法可以保护拉普拉斯锐化处理的效果,同时又能复原背景信息。因此拉普拉斯算子用于图像增强的基本方法如下:
在这里插入图片描述
可以用下面的掩模一次扫描来实现:
MATLAB图像处理-图片的锐化增强(附代码)_第3张图片
代码如下:

img = imread('');
figure;
imshow(img);
title('原图')
i = 5;
w = fspecial('log', [i i], 0.5);%生成高斯-拉普拉斯滤波器
img_ruihua = filter(img, w, i);
figure;
imshow(img_ruihua);
tit = ['当前模板大小为' num2str(i)];
title(tit);

%%
%滤波函数
function img_result = filter(img, w, i)
    moban_size = i;
    [M,N] = size(img);
    img_lap = zeros(M, N);
     expand_img = double(wextend('2D','zpd', img, floor(i/2)));%扩展0,转double为了矩阵运算
 
     for i=1:M
        for j=1:N
            ave = sum( sum( expand_img(i:i+moban_size-1,j:j+moban_size-1) .* w)); %取出扩展元素与模板相乘,并求矩阵元素之和
            img_lap(i,j) = ave;
        end
     end

    img_lap = uint8(img_lap);%转int8,图像
    figure;
    imshow(img_lap);
    title('边缘')
    img_result = img - img_lap;
end

结果示例:
原图:
MATLAB图像处理-图片的锐化增强(附代码)_第4张图片
边缘提取如下:

MATLAB图像处理-图片的锐化增强(附代码)_第5张图片
增强后的图形:
MATLAB图像处理-图片的锐化增强(附代码)_第6张图片
总结:
锐化处理可以用空间微分来完成. 微分算子的响应强度与图像在该点的突变程度有关,图像微分增强了边缘和其他突变(如噪声)而消弱了灰度变化缓慢的区域。

你可能感兴趣的:(MATLAB图像处理,图像处理)