用matlab生成一维和二维的3*3,5*5,1*3的高斯函数模板。
%gaussian->
%1D:f(x)=1/(sqrt(2*pi)*sigma)*exp(-x^2/(2*sigma^2))
%2D:f(x)=1/((2*pi)*sigma^2)*exp(-(x^2+y^2)/(2*sigma^2))
%3*3高斯模板
%3x3gaussian-->(1/16)*[1 2 1
% 2 4 2
% 1 2 1]
%5*5高斯模板
%5x5gaussian-->(1/273)*[4 16 26 16 4
% 7 26 41 26 7
% 4 16 26 16 4
% 1 4 7 4 1]
clc
clear
close all
m=3;
n=3;
sigma=1.0;
h=zeros(m,n);
%生成2维的高斯模板。
for i=1:m
for j=1:n
%h2D(i,j)=1/((2*pi)*sigma^2)*exp(-((i-2)^2+(j-2)^2)/(2*sigma^2));
h2D(i,j)=exp(-((i-2)^2+(j-2)^2)/(2*sigma^2));%/(2*pi);
end
end
h2D=h2D/sum(h2D(:))
%h1 = fspecial('gaussian',3,1.0)
%生成1维的高斯模板
h1D=zeros(1,3);
for i=1:m
% h(i,j)=1/((2*pi)*sigma^2)*exp(-((i-2)^2+(j-2)^2)/(2*sigma^2))
h1D(i)=exp(-((i-2)^2)/(2*sigma^2));
end
h1D=h1D/sum(h1D(:))
%5*5的高斯模板
for i=1:5
for j=1:5
h55(i,j)=exp(-((i-3)^2+(j-3)^2)/(2*sigma^2));
end
end
%h55=h55/sum(h55(:))