二维高斯函数(也称为二维正态分布函数)的公式通常表示为:
f ( x , y ) = 1 2 π σ x σ y 1 − ρ 2 exp ( − 1 2 ( 1 − ρ 2 ) [ ( x − μ x σ x ) 2 − 2 ρ ( x − μ x σ x ) ( y − μ y σ y ) + ( y − μ y σ y ) 2 ] ) f(x,y) = \frac{1}{2\pi\sigma_x\sigma_y\sqrt{1-\rho^2}} \exp\left(-\frac{1}{2(1-\rho^2)}\left[\left(\frac{x-\mu_x}{\sigma_x}\right)^2 - 2\rho\left(\frac{x-\mu_x}{\sigma_x}\right)\left(\frac{y-\mu_y}{\sigma_y}\right) + \left(\frac{y-\mu_y}{\sigma_y}\right)^2\right]\right) f(x,y)=2πσxσy1−ρ21exp(−2(1−ρ2)1[(σxx−μx)2−2ρ(σxx−μx)(σyy−μy)+(σyy−μy)2])
其中:
- x x x 和 y y y 是二维平面上的坐标。
- μ x \mu_x μx 和 μ y \mu_y μy 分别是 x x x 和 y y y 的均值。
- σ x \sigma_x σx 和 σ y \sigma_y σy 分别是 x x x 和 y y y 的标准差。
- ρ \rho ρ 是 x x x 和 y y y 之间的相关系数,其值介于 -1 和 1 之间。当 ρ = 0 \rho = 0 ρ=0 时, x x x 和 y y y 是独立的。
如果 x x x 和 y y y 是独立的(即 ρ = 0 \rho = 0 ρ=0),则二维高斯函数可以简化为两个一维高斯函数的乘积,这就是所谓的分离公式:
f ( x , y ) = 1 2 π σ x exp ( − ( x − μ x ) 2 2 σ x 2 ) × 1 2 π σ y exp ( − ( y − μ y ) 2 2 σ y 2 ) f(x,y) = \frac{1}{\sqrt{2\pi}\sigma_x} \exp\left(-\frac{(x-\mu_x)^2}{2\sigma_x^2}\right) \times \frac{1}{\sqrt{2\pi}\sigma_y} \exp\left(-\frac{(y-\mu_y)^2}{2\sigma_y^2}\right) f(x,y)=2πσx1exp(−2σx2(x−μx)2)×2πσy1exp(−2σy2(y−μy)2)
这表示在 x x x 和 y y y 相互独立的情况下,二维高斯分布可以分解为两个一维高斯分布在 x x x 和 y y y 方向上的乘积。
在实际应用中,二维高斯函数常用于图像处理、机器学习和统计学等领域,用于描述二维空间中的数据分布。
clc;clear;close all;
sigma=1.784286;
size=floor(3*sigma);
q=2*sigma*sigma;
for i=-size:size
for j=-size:size
g(i+size+1,j+size+1)=1/(q*pi)*exp(-i*i/q-j*j/q);
end
end
%%sum
disp(sum(sum(g)));
figure;
subplot(1,3,1);
surf(g);
title('二维高斯核')
x=-size:size;
gx=1/sqrt(q*pi)*exp(-x.*x/(q));
%%nx=gx./sum(gx);
disp(sum(sum(gx)));
subplot(1,3,2);
plot(gx);
title('分离一维高斯核')
rs=(gx')*gx;
subplot(1,3,3);
surf(rs);
title('x,y方向分离核相乘')