锐化处理的目的:是突出图像中的细节或者增强被模糊了的细节.
锐化处理可以用空间微分来完成. 微分算子的响应强度与图像在该点的突变程度有关,图像微分增强了边缘和其他突变(如噪声)而消弱了灰度变化缓慢的区域.
我们最感兴趣的是微分算子在①恒定灰度区域(平坦段)、②突变的开头与结尾(阶梯与斜坡突变)以及③沿着灰度级斜坡处的特性
对于一阶微分必须保证:
1.平坦段微分值为零
2.在灰度阶梯或斜坡的起点处微分值非零
3.沿着斜坡面微分值非零
对于二阶微分必须保证:
1.在平坦区微分值为零
2.在灰度阶梯或斜坡的起始点处微分值非零
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
结果示例:
原图:
边缘提取如下:
增强后的图形:
总结:
锐化处理可以用空间微分来完成. 微分算子的响应强度与图像在该点的突变程度有关,图像微分增强了边缘和其他突变(如噪声)而消弱了灰度变化缓慢的区域。