銳化處理的目的:是突出圖像中的細節或者增強被模糊了的細節.
銳化處理可以用空間微分來完成. 微分算子的響應強度與圖像在該點的突變程度有關,圖像微分增強了邊緣和其他突變(如噪聲)而消弱了灰度變化緩慢的區域.
我們最感興趣的是微分算子在①恆定灰度區域(平坦段)、②突變的開頭與結尾(階梯與斜坡突變)以及③沿着灰度級斜坡處的特性
對於一階微分必須保證:
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
結果示例:
原圖:
邊緣提取如下:
增強後的圖形:
總結:
銳化處理可以用空間微分來完成. 微分算子的響應強度與圖像在該點的突變程度有關,圖像微分增強了邊緣和其他突變(如噪聲)而消弱了灰度變化緩慢的區域。