MATLAB圖像處理-圖片的銳化增強(附代碼)

銳化處理的目的:是突出圖像中的細節或者增強被模糊了的細節.

銳化處理可以用空間微分來完成. 微分算子的響應強度與圖像在該點的突變程度有關,圖像微分增強了邊緣和其他突變(如噪聲)而消弱了灰度變化緩慢的區域.

我們最感興趣的是微分算子在①恆定灰度區域(平坦段)、②突變的開頭與結尾(階梯與斜坡突變)以及③沿着灰度級斜坡處的特性

對於一階微分必須保證:
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

結果示例:
原圖:
原圖
邊緣提取如下:

邊緣提取
增強後的圖形:
在這裏插入圖片描述
總結:
銳化處理可以用空間微分來完成. 微分算子的響應強度與圖像在該點的突變程度有關,圖像微分增強了邊緣和其他突變(如噪聲)而消弱了灰度變化緩慢的區域。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章