空間域銳化濾波(拉普拉斯運算元)

2021-08-14 20:02:28 字數 1350 閱讀 8063

自定義乙個空間域銳化濾波函式,要求該濾波器採用拉普拉斯運算元作為濾波器模板,並將輸入影象(1.tif)

進行空間域銳化處理;函式模板為

img2 = myspatiallaplacefilter(img1);其中,img1為輸入影象

;img2為濾波

處理後的輸出影象;並採用下述拉普拉斯運算元作為濾波器模板。

% 空間域銳化處理函式

function [ img2 ] = myspatiallaplacefilter( img1 )

[r,c] = size(img1);

img1 = double(img1);

% 拉普拉斯運算元作為濾波器模板

template = [1,1,1;1,-8,1;1,1,1];

[a,b] = size(template);

% 邊界填充

imgt = zeros(r+a-1,c+b-1);

imgt(a/2+0.5:a/2-0.5+r,b/2+0.5:b/2-0.5+c) = img1(:,:);

% 模板點乘原圖的每個畫素點的鄰域再累加

img2 = zeros(r+a-1,c+b-1);

for i=a/2+0.5:(a/2-0.5+r)

for j=b/2+0.5:(b/2-0.5+c)

img2(i,j) = sum(sum(imgt(i-a/2+0.5:i+a/2-0.5,j-b/2+0.5:j+b/2-0.5).*template));

endend% 去除邊緣

img2 = img2(a/2+0.5:a/2-0.5+r,b/2+0.5:b/2-0.5+c);

% 銳化處理

img2 = img1 - img2;

img2 = uint8(img2);

end% 主函式

% 輸入影象

img1 = imread('1.tif');

figure();

subplot(121);

imshow(img1);

title('原圖');

img2 = myspatiallaplacefilter(img1);

subplot(122);

imshow(img2);

title('空間域銳化後影象');

結果

拉普拉斯銳化

影象銳化 提供影象的對比度從而使得影象清晰起來,在影象平滑中,為了使得影象模糊,通常採用鄰域平均的方法縮小鄰域內畫素之間的灰度差異。在影象銳化中,提高鄰域內畫素的灰度差來提高影象的對比度。影象的拉普拉斯銳化是利用拉普拉斯運算元對影象進行邊緣增強的一種方法,拉普拉斯運算元是以影象鄰域內畫素灰度查分計算...

opencv用拉普拉斯運算元做銳化

opencv9 sharpening.cpp 此檔案包含 main 函式。程式執行將在此處開始並結束。include include include using namespace cv using namespace std debug下在lib檔案的名稱後加d,release下不加d。void ...

拉普拉斯運算元 拉普拉斯方程之美

物理學有它自己的羅塞塔石碑。它們是連線宇宙間看上去不同的領域的天書,它們將任何物理學分支同純粹數學聯絡起來。拉普拉斯方程就是其中之一 它幾乎無處不在 在電磁學 在流體力學 在引力 在熱學 在肥皂泡 拉普拉斯方程是以法國數學家pierre simon laplace 皮埃爾 西蒙 拉普拉斯 的名字命名...