DOG算子的运用
Difference of Gaussian(DOG)是高斯函數的差分。
它是可以通過將圖像與高斯函數進行卷積得到一幅圖像的低通濾波結果,即去噪過程,這里的Gaussian和高斯低通濾波器的高斯一樣,
是一個函數,即為正態分布函數。
基本理論
首先,高斯函數表示定義為:
其次,兩幅圖像的高斯濾波表示為:
最后,將上面濾波得到的兩幅圖像g1和g2相減得到:
即:可以DOG表示為:
MATLAB代碼:
<span style="font-size:18px;">clc clear all; %DoG濾波器 p2 = input('模板尺寸p2=\n'); display('DoG算子的方差設置 方差1<方差2') sigma1 = input('方差1 sigma1=\n'); sigma2 = input('方差2 sigma2=\n'); %% siz = (p2-1)/2; [x,y] = meshgrid(-siz(1):1:siz(1),-siz(1):1:siz(1)); z1 = exp(-(x.*x+y.*y)/(2*sigma1.^2))/sqrt(2*pi*sigma1.^2); z2 = exp(-(x.*x+y.*y)/(2*sigma2.^2))/sqrt(2*pi*sigma2.^2); %生成高斯核 %% z3 = z1 -z2; %% figure; surf(x,y,z1) figure; mesh(x,y,z2)Inimage = imread('lena.jpg'); figure imshow(Inimage) Inimage = rgb2gray(Inimage); Resimage = conv2(Inimage, z3,'full');Resimage = mat2gray(Resimage); figure imshow(Resimage)</span>
總結
- 上一篇: LOG算子的运用
- 下一篇: MATLAB中各种对话框的设置