2015-05-19 23 views
0

,我被問到一個問題,爲什麼我在拉普拉斯濾波器中採用了導數。以及什麼衍生物實際上到圖像。也u能告訴我是什麼線即意味着original_image - filtered_image對於下面的代碼,衍生物對圖像做了什麼

close all 
clear all 
j=imread('blur.png'); 
A = j(:,:,1); 
figure,imshow(A); title('Original Image') 
Original_image=A; 
Filtered_Image=zeros(size(A)); 
F=[1 1 1;1 -8 1; 1 1 1]; 
A=double(A); 
for k=1:size(A,1)-2 
for j=1:size(A,2)-2 
Filtered_Image(k,j)=sum(sum(F.*A(k:k+2,j:j+2))); 

end 
end 
Filtered_Image= uint8(Filtered_Image); 
figure,imshow(Filtered_Image);title('Filtered Image'); 
Deblurred_image=Original_image-5*Filtered_Image; 
figure,imshow(Deblurred_image);title('Deblurred Image'); 
+2

拉普拉斯算子近似[[second_diff]的總和](http://en.wikipedia.org/wiki/Discrete_Laplace_operator#Image_Processing)。與衍生物一樣,此過濾器增強了_edges_。這樣思考:如果一個函數變化快,其衍生物(或二階導數)將會很大。您還可以在(空間)頻率域中看到它:拉普拉斯算子是一個_高通濾波器_,它可以增強空間快速變化 –

+1

想想一維一維圖的導數。如果值不變,則導數爲零。如果數值變化很大,則線的斜率很高,導數最大。在2D中大致相同。 –

+0

謝謝@LuisMendo –

回答

2

F是高斯的拉普拉斯(LOG)內核(二階導數),它是用來尋找圖像的內側邊緣。

我們通常使用導數來找到圖像中的邊緣,因爲導數會告訴變化率。在圖像中,邊緣通常以強度急劇變化標記,這意味着它們也具有較大的導數。一階導數通常在邊緣顯示最大值或最小值。我們通常將一階導數設爲閾值來尋找邊緣。像LoG這樣的二階導數檢測器實際上是通過零交叉標記邊緣的。看看二階導數籽粒,它增加arund邊緣的像素的對比度,邊緣本身是0。這兩種方法是爲了誇大邊緣 enter image description here

回到你的問題。如果我們的濾波圖像是我們的LoG操作的結果,那意味着Filtered_Image包含我們圖像的邊緣。所以如果我們從圖像中減去邊緣original - filtered我們實際上是強調邊緣。