-
2021-04-21 11:32:15
高斯函数简介
谓径向基函数 (Radial Basis Function 简称
RBF), 就是某种沿径向对称的标量函数。 通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数
, 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远离xc时函数取值很小。最常用的径向基函数是高斯核函数 ,形式为
k(||x-xc||)=exp{- ||x-xc||^2/(2*σ)^2) }
其中xc为核函数中心,σ为函数的宽度参数 ,
控制了函数的径向作用范围。
高斯函数具有五个重要的性质,这些性质使得它在早期图像处理中特别有用.这些性质表明,高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器,且在实际图像处理中得到了工程人员的有效使用.高斯函数具有五个十分重要的性质,它们是:
(1)二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是相同的.一般来说,一幅图像的边缘方向是事先不知道的,因此,在滤波前是无法确定一个方向上比另一方向上需要更多的平滑.旋转对称性意味着高斯平滑滤波器在后续边缘检测中不会偏向任一方向.
(2)高斯函数是单值函数.这表明,高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点权值是随该点与中心点的距离单调增减的.这一性质是很重要的,因为边缘是一种图像局部特征,如果平滑运算对离算子中心很远的像素点仍然有很大作用,则平滑运算会使图像失真.
(3)高斯函数的付立叶变换频谱是单瓣的.正如下面所示,这一性质是高斯函数付立叶变换等于高斯函数本身这一事实的直接推论.图像常被不希望的高频信号所污染(噪声和细纹理).而所希望的图像特征(如边缘),既含有低频分量,又含有高频分量.高斯函数付立叶变换的单瓣意味着平滑图像不会被不需要的高频信号所污染,同时保留了大部分所需信号.
(4)高斯滤波器宽度(决定着平滑程度)是由参数σ表征的,而且σ和平滑程度的关系是非常简单的.σ越大,高斯滤波器的频带就越宽,平滑程度就越好.通过调节平滑程度参数σ,可在图像特征过分模糊(过平滑)与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷.
(5)由于高斯函数的可分离性,大高斯滤波器可以得以有效地实现.二维高斯函数卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的相同一维高斯函数卷积.因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长.
2函数的表达式和图形
matlab绘图的代码
alf=3;
n=7;%定义模板大小
n1=floor((n+1)/2);%确定中心
for
i=1:n
a(i)= exp(-((i-n1).^2)/(2*alf^2));
for j=1:n
b(i,j)
=exp(-((i-n1)^2+(j-n1)^2)/(4*alf))/(4*pi*alf);
end
end
subplot(121),plot(a),title('一维高斯函数'
)
subplot(122),surf(b),title('二维高斯函数'
)
二 图像滤波
1 图像滤波的基本概念
图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt
& Pepper)噪声、脉冲噪声、高斯噪声等.椒盐噪声含有随机出现的黑白强度值.而脉冲噪声则只含有随机的白强度值(正脉冲噪声)或黑强度值(负脉冲噪声).与前两者不同,高斯噪声含有强度服从高斯或正态分布的噪声.研究滤波就是为了消除噪声干扰。
图像滤波总体上讲包括空域滤波和频域滤波。频率滤波需要先进行傅立叶变换至频域处理然后再反变换回空间域还原图像,空域滤波是直接对图像的数据做空间变换达到滤波的目的。它是一种邻域运算,即输出图像中任何像素的值都是通过采用一定的算法,根据输入图像中对用像素周围一定邻域内像素的值得来的。如果输出像素是输入像素邻域像素的线性组合则称为线性滤波(例如最常见的均值滤波和高斯滤波),否则为非线性滤波(中值滤波、边缘保持滤波等)。
线性平滑滤波器去除高斯噪声的效果很好,且在大多数情况下,对其它类型的噪声也有很好的效果。线性滤波器使用连续窗函数内像素加权和来实现滤波。特别典型的是,同一模式的权重因子可以作用在每一个窗口内,也就意味着线性滤波器是空间不变的,这样就可以使用卷积模板来实现滤波。如果图像的不同部分使用不同的滤波权重因子,且仍然可以用滤波器完成加权运算,那么线性滤波器就是空间可变的。任何不是像素加权运算的滤波器都属于非线性滤波器.非线性滤波器也可以是空间不变的,也就是说,在图像的任何位置上可以进行相同的运算而不考虑图像位置或空间的变化。
2 图像滤波的计算过程分析
滤波通常是用卷积或者相关来描述,而线性滤波一般是通过卷积来描述的。他们非常类似,但是还是会有不同。下面我们来根据相关和卷积计算过程来体会一下他们的具体区别:
卷积的计算步骤:
(1)卷积核绕自己的核心元素顺时针旋转180度
(2)移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
(3)在旋转后的卷积核中,将输入图像的像素值作为权重相乘
(4)第三步各结果的和做为该输入像素对应的输出像素
相关的计算步骤:
(1)移动相关核的中心元素,使它位于输入图像待处理像素的正上方
(2)将输入图像的像素值作为权重,乘以相关核
(3)将上面各步得到的结果相加做为输出
可以看出他们的主要区别在于计算卷积的时候,卷积核要先做旋转。而计算相关过程中不需要旋转相关核。
例如: magic(3)
=[8 1 6;3 5 7;4 9 2],旋转180度后就成了[2 9 4;7
5 3;6 1 8]
三 高斯平滑滤波器的设计
高斯函数的最佳逼近由二项式展开的系数决定,换句话说,用杨辉三角形(也称Pascal三角形)的第n行作为高斯滤波器的一个具有n个点的一维逼近,例如,五点逼近为:
1 4 6 4
1
它们对应于Pascal三角形的第5行.这一模板被用来在水平方向上平滑图像.在高斯函数可分离性性质中曾指出,二维高斯滤波器能用两个一维高斯滤波器逐次卷积来实现,一个沿水平方向,一个沿垂直方向.实际中,这种运算可以通过使用单个一维高斯模板,对两次卷积之间的图像和最后卷积的结果图像进行转置来完成.
这一技术在模板尺寸N约为10时的滤波效果极好.对较大的滤波器,二项式展开系数对大多数计算机来说都太多.但是,任意大的高斯滤波器都能通过重复使用小高斯滤波器来实现.高斯滤波器的二项式逼近的σ可用高斯函数拟合二项式系数的最小方差来计算.
设计高斯滤波器的另一途径是直接从离散高斯分布中计算模板权值。为了计算方便,一般希望滤波器权值是整数。在模板的一个角点处取一个值,并选择一个K使该角点处值为1。通过这个系数可以使滤波器整数化,由于整数化后的模板权值之和不等于1,为了保证图像的均匀灰度区域不受影响,必须对滤波模板进行权值规范化。
高斯滤波器的采样值或者高斯滤波器的二项式展开系数可以形成离散高斯滤波器.当用离散高斯滤波器进行卷积时,其结果是一个更大的高斯离散滤波器.若一幅图像用N*N离散高斯滤波器进行平滑,接着再用M*M离散高斯滤波器平滑的话,那么平滑结果就和用(N+M-1)*(N+M-1)离散高斯滤波器平滑的结果一样.换言之,在杨辉三角形中用第N行和第M行卷积形成了第N+M-1行.
四 使用高斯滤波器进行图像的平滑
如果适应卷积运算对图像进行滤波,在matlab中可以通过2个不同的函数来实现conv2和imfliter。他们的调用方式如下:
Img_n =
conv2(Img,g,'same'); 和
Img_n = imfilter(Img,g,'conv');
这两种函数处理的结果是完全一样的。
imfiler函数在默认的情况下,对图像的滤波计算用的是相关
Img_n =
imfilter(Img,g);%使用相关运算滤波
下面是一个简单的例子展示了使用相同的高斯滤波核函数,相关运算和卷积运算对图像平滑的效果可以直接后边附的程序查看。
由结果可以看出相关运算和卷积运算的在用于图像平滑滤波时效果差别不大。当模板大小N>50的时候。边界的系数已经非常小,对运算起到的作用和微乎其微,所以平滑的结果差别已经非常细微,肉眼几乎难以察觉。
example.m
clear all
I =
imread('lena.bmp');
Img =
double(I);
alf=3;
n=10;%定义模板大小
n1=floor((n+1)/2);%计算中心
for i=1:n
for j=1:n
b(i,j)
=exp(-((i-n1)^2+(j-n1)^2)/(4*alf))/(4*pi*alf);
end
end
Img_n =
uint8(conv2(Img,b,'same'));
K=uint8(imfilter(Img,b));
Img_n2=uint8(imfilter(Img,b,'conv'));
J=(Img_n2)-Img_n;
flag=mean(J(:))
subplot(131),imshow(I);title('原图')
subplot(132),imshow(Img_n);title('卷积运算图')
subplot(133),imshow(K);title('相关运算图')
figure(2),surf(b);
更多相关内容 -
Python实现高斯函数的三维显示方法
2021-01-01 14:00:57在网上查阅资料,发现很少用Python进行高斯函数的三维显示绘图的,原因可能是其图形显示太过怪异,没有MATLAB精细和直观。 回顾一下二维高斯公式: σ此处取3。 在MATLAB下的程序为: u=[-10:0.1:10]; v=[-10:0.1:... -
将二维高斯函数拟合到数据:将二维高斯函数拟合到模拟数据。-matlab开发
2021-05-30 17:13:32该程序生成一个二维高斯。 然后程序尝试使用 MatLab 函数“lsqcurvefit”拟合数据,以找到二维高斯的位置、方向和宽度。... 二维高斯函数由函数“D2GaussFunctionRot.m”和“D2GaussFunction.m”定义 -
高斯函数及其反函数求法
2019-04-19 09:14:20高斯函数+二分法求反函数,,,程序设计导论——————Python语言实现,课本习题。 -
论文研究 - 关于零的黎曼Zeta函数,贝塞尔函数和高斯函数的共同性质
2020-05-22 07:51:53研究了复数域中Riemann Xi函数(到zeta函数),修改后的Bessel函数和高斯(bell)函数的... 图片中讨论了从修改的Bessel函数到高斯函数的有限过渡。 在附录中,使用第二均值定理为黎曼假设的完整证明提供了新的基石。 -
Matlab 生成高斯函数图像
2018-10-09 10:52:05一个画高斯三维图像的matlab脚本文件,可以画出漂亮的图像 -
高斯函数编写全代码_高斯函数编写_亲测可用_全代码_有注释_原理清晰_
2021-09-29 10:21:33高斯函数,全代码,有注释,可放在程序中运行,亲测可用,原理清晰,适合新手! -
高斯函数
2021-01-21 17:14:42高斯函数广泛应用于统计学领域,用于表述正态分布,在信号处理领域,用于定义高斯滤波器,在图像处理领域,二维高斯核函数常用于高斯模糊,在数学领域,主要用于解决热力方程和扩散方程。 1、高斯函数与正态分布 ...目录
高斯函数广泛应用于统计学领域,用于表述正态分布,在信号处理领域,用于定义高斯滤波器,在图像处理领域,二维高斯核函数常用于高斯模糊,在数学领域,主要用于解决热力方程和扩散方程。
1、高斯函数与正态分布
1.1 一维高斯函数
- a表示得到曲线的高度;
- b(μ)是指曲线在x轴的中心;
- c(σ)指width(与半峰全宽有关);
图形如下:
1.2 正态分布
高斯函数其实是一族函数,而满足正态分布的高斯函数如下所示:
1.3 二维高斯函数(高斯分布、正态分布)
μ=0,即中心点就是原点。
二维高斯函数在计算机视觉领域用处广泛,利用0均值的二维高斯函数,可以生成高斯卷积核,用于图像处理中的高斯滤波,实现高斯模糊的效果,有效去除高斯噪声。
二维高斯函数的表达式和形状如下所示,为一个立体“钟状图”。
2、高斯模糊原理
模糊就是每个像素取周边像素的平均值,在数值上是一种平滑作用,在图形上相当于产生模糊效果,中间点失去细节。
很显然,计算平均值时,取周边范围越大,模糊效果越强烈。
每个点都取周边像素的平均值,那么如何分配周边像素的权重呢?如果使用简单平均,不合理,这样忽略了图像像素之间的连续性和相关性。图像都是连续的,越靠近的点关系越密切,越远离的点关系越疏远,因此距离近的点权重大,距离远的点权重小。显然,正态分布是一种可取权重分布模式。
计算平均值时,将中心点作为原点,其他点按照其在正态曲线上的位置,分配权重,就可以得到一个加权值。
2.1 二维高斯函数
一维形式:
令中心点就是原点,即μ=0:
进而推导二维高斯函数:
2.2 权重矩阵
假定中心点的坐标是(0,0),那么距离它最近的8个点的坐标如下:
更远的点以此类推。
为了计算权重矩阵,需要设定σ的值。假定σ=1.5,则模糊半径为1的权重矩阵如下:
这9个点的权重总和等于0.4787147,如果只计算这9个点的加权平均,还必须让它们的权重之和等于1,因此上面9个值还要分别除以0.4787147,得到最终的权重矩阵。
2.3 计算高斯模糊
假设现有9个像素点,灰度值(0-255)如下:
每个点乘以自己的权重值(协相关运算、矩阵点乘):
将这9个值加起来,就是中心点的高斯模糊的值。对所有点重复这个过程,就得到了高斯模糊后的图像。如果原图是彩色图片,可以对RGB三个通道分别做高斯模糊。
3、高斯核函数
3.1 径向基函数RBF
径向基函数 (Radial Basis Function 简称 RBF), 就是某种沿径向对称的标量函数。 通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数 , 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远离xc时函数取值很小。
最常用的径向基函数是高斯核函数 ,形式为 k(||x-xc||)=exp{- ||x-xc||^2/2*σ^2) } 其中xc为核函数中心,σ为函数的宽度参数 , 控制了函数的径向作用范围。
3.2 高斯函数性质
高斯函数具有五个重要的性质,这些性质使得它在早期图像处理中特别有用。这些性质表明,高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器,且在实际图像处理中得到了工程人员的有效使用。高斯函数具有五个十分重要的性质,它们是:
1、二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是相同的。
一般来说,一幅图像的边缘方向是事先不知道的,因此,在滤波前是无法确定一个方向上比另一方向上需要更多的平滑。旋转对称性意味着高斯平滑滤波器在后续边缘检测中不会偏向任一方向。
2、高斯函数是单值函数。这表明,高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点权值是随该点与中心点的距离单调增减的。这一性质是很重要的,因为边缘是一种图像局部特征,如果平滑运算对离算子中心很远的像素点仍然有很大作用,则平滑运算会使图像失真。
3、高斯函数的付立叶变换频谱是单瓣的。正如下面所示,这一性质是高斯函数付立叶变换等于高斯函数本身这一事实的直接推论。图像常被不希望的高频信号所污染(噪声和细纹理)。而所希望的图像特征(如边缘),既含有低频分量,又含有高频分量。高斯函数付立叶变换的单瓣意味着平滑图像不会被不需要的高频信号所污染,同时保留了大部分所需信号。
4、高斯滤波器宽度(决定着平滑程度)是由参数σ表征的,而且σ和平滑程度的关系是非常简单的。σ越大,高斯滤波器的频带就越宽,平滑程度就越好。通过调节平滑程度参数σ,可在图像特征过分模糊(过平滑)与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷。
5、由于高斯函数的可分离性,大高斯滤波器可以得以有效地实现。二维高斯函数卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的相同一维高斯函数卷积。因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长。
4、高斯噪声
4.1 噪声
一般默认噪声是高斯噪声,是为了更好的模拟未知的真实噪声。在真实环境中,噪音往往不是由单一源头造成的,而是很多不同来源的噪音复合体。假设,我们把真实噪音看成非常多不同概率分布的随机变量的加合,并且每一个随机变量都是独立的,那么根据Central Limit Theorem,他们的normalized sum就随着噪音源数量的上升,趋近于一个高斯分布。基于这种假设来看,采用合成的高斯噪音,是在处理这种复杂,且不知道噪音分布为何的情况下,一个既简单又不差的近似仿真。
噪声在图像上常表现为一引起较强视觉效果的孤立像素点或像素块。一般,噪声信号与要研究的对象不相关,它以无用的信息形式出现,扰乱图像的可观测信息。通俗的说就是噪声让图像不清楚。对于数字图像信号,噪声表为或大或小的极值,这些极值通过加减作用于图像像素的真实灰度值上,对图像造成亮、暗点干扰,极大降低了图像质量,影响图像复原、分割、特征提取、图像识别等后继工作的进行。
4.2 高斯噪声
概率密度函数服从高斯分布的一类噪声。如果一个噪声,幅度分布服从高斯分布,功率谱密度是均匀分布,则称为高斯白噪声。高斯白噪声的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。
表现形式:
-
二维多元高斯:当提供均值向量和协方差矩阵时,绘制二维多元高斯函数。-matlab开发
2021-05-30 20:32:37当提供均值和协方差时,此函数绘制二维多变量高斯图。 它不使用 for 循环。 例如:绘图平均值= [10; 11],cov = [6 0; 0 6] 2D多元高斯函数>> mvg([10;11],[6 0;0 6]) -
正态分布(即高斯函数)积分
2017-11-20 12:01:23描述高斯函数积分方法,查表转换。用于计算高斯函数积分 -
C# 高斯函数 程序
2017-05-26 16:21:38C# 高斯函数 程序 -
高斯函数的证明与详解
2015-09-16 17:40:28高斯函数的证明与详解,超棒,好好看看。高斯函数的证明与详解,高斯函数的证明与详解。 -
绘制高斯函数
2013-09-06 10:49:11主要显示或许卫星图片的直方图,其直方图集中在灰度级的暗端,利用高斯函数修改图像的直方图 -
高斯函数、高斯积分和正态分布
2022-01-25 10:42:19这三个主题,高斯函数、高斯积分和高斯概率分布是这样交织在一起的,所以我认为最好尝试一次性解决这三个主题(但是我错了,这是本篇文章的不同主题)。本篇文章我们首先将研究高斯函数的一般定义是什么,然后将看...正态分布是高斯概率分布。高斯概率分布是反映中心极限定理原理的函数,该定理指出当随机样本足够大时,总体样本将趋向于期望值并且远离期望值的值将不太频繁地出现。高斯积分是高斯函数在整条实数线上的定积分。这三个主题,高斯函数、高斯积分和高斯概率分布是这样交织在一起的,所以我认为最好尝试一次性解决这三个主题(但是我错了,这是本篇文章的不同主题)。本篇文章我们首先将研究高斯函数的一般定义是什么,然后将看一下高斯积分,其结果对于确定正态分布的归一化常数是非常必要的。最后我们将使用收集的信息理解,推导出正态分布方程。
首先,让我们了解高斯函数实际上是什么。高斯函数是将指数函数 exp(x) 与凹二次函数(例如 -(ax^2+bx+c) 或 -(ax^2+bx) 或只是-ax^2组成的函数。结果是一系列呈现“钟形曲线”的形状的函数。
两个高斯函数的图。第一个高斯(绿色)的λ=1和a=1。第二个(橙色)λ=2和a=1.5。两个函数都不是标准化的。也就是说,曲线下的面积不等于1。
大多数人都熟悉这类曲线是因为它们在概率和统计中被广泛使用,尤其是作为正态分布随机变量的概率密度函数。在这些情况下,函数具有的系数和参数既可以缩放“钟形”的振幅,改变其标准差(宽度),又可以平移平均值,所有这一切都是在曲线下的面积进行归一化(缩放钟形,使曲线下的面积总是等于1)的同时进行的。结果是一个高斯函数包含了一大堆的参数来影响这些结果。
如果将其认为是均值 = μ 且标准差 = σ 的正态分布方程。将其与高斯 λ exp(-ax^2) 的一般形式进行比较,我们可以看到:
- (x - μ)^2表示的是均值μ如何在x轴上左右平移图像,这就是均值要做的。如果μ=0,那么图的中心为0。
- σ2,是一个测量随机变量的方差,也就是说数据是如何分散的,当我们使用a=1/(2σ2)缩小或扩大图形时,我们希望同时缩放图形使用λ=1/√2πσ^2。这样图下的面积才能保持为1。
前导系数 λ 有时表示为 1/Z,其中 Z=√2πσ2,正是这样的一个结果将我们带到了本文的主要观点之一:√2πσ2有时被称为一个自变量的正态分布的归一化常数,而1/√2πσ2则被称为归一化常数。在这两种情况下,公式中都有 π,它是从哪里来的?它通常与圆、径向对称和/或极坐标相关联。单个变量的函数如何以 π 作为其在前导系数中的归一化参数之一呢?
可以参考我们以前的文章,里面有非常详细的描述
高斯积分
不定积分 ∫ exp(x^2) dx 不可能用初等函数求解。有没有任何积分方法可以用来求解不定积分?
可以计算定积分,如上所述,首先对高斯函数求平方从而在 x 和 y 中产生一个具有径向对称二维图的两个变量函数。这样能够将直角坐标系转换为极坐标,在此基础上就可以使用更熟悉的积分方法(例如置换)进行积分。然后,简单地取结果的平方根(因为我们在开始时对积分进行平方) 就得到了我们的答案,顺便说一句,结果是是√π。
对高斯积分求平方
方法的第一步是对积分求平方——也就是说,我们将一维转换为二维,这样就可以使用多变量微积分的技术来求解积分
可以重写为:
这两个积分用x和y表示是等价的;所以它等同于x的单个积分的平方。因为变量x和y是独立的,所以可以把它们移进或移出第二个积分符号,可以这样写:
如果你不熟悉如何解二重积分也不用担心。只需先使用内部变量进行积分得到单个积分。然后用左边的变量和外面的变量积分。但现在还不需要这么做。这里需要注意的是当我们对积分进行平方时,得到了一个二维的图形化的径向对称的高斯函数。用x和y来表示积分e的指数是- (x2+y2)给了我们下一步应该做什么的线索。
转换为极坐标
这里棘手的部分是,我们必须将直角坐标下的二重积分转换成极坐标下的二重积分。
为了在极坐标中对整个无限区域进行积分,我们首先对 exp(−r²) 相对于从 x=0 开始并延伸到无穷大的半径 r 进行积分。结果是一个无限薄的楔形,看起来像我们原始一维高斯曲线的一半。然后我们围绕旋转轴 Z 轴旋转楔形,并累积无限数量的这些极薄的楔形。也就是说——我们在 π 从 0 到 2π 时积分。
我们现在的二重积分看起来像这样:
我们可以用 r^2 替换指数中的 −(x2+y2),这要感谢毕达哥拉斯。但是我们仍然需要将我们的微分从矩形转换为极坐标。
微分的转换简单的表示如下:
在任何情况下,我们的二重积分现在看起来像这样:
添加适当的积分边界:
如果我们设u=r^2,那么du=2r,我们可以写成(对于内积分)
然后求出外积分:
所以:
我们在下一节求解标准化常数时,这个结果很重要。
正态分布函数的推导
现在我们有了推导正态分布函数的所有前提。下面将分两步来做:首先确定我们需要的概率密度函数。这意味着以λ为单位重新转换-a-产生的函数,无论为λ选择什么值,曲线下的面积总是1。然后用随机变量的方差σ^2来转换λ。对整个实数线上的方差进行积分 从而得到我们在前导系数 √2πσ^2 中需要归一化常数的项,也是我们在分母中需要的项指数 2σ^2。我们将使用分部积分来求解方差积分。
概率密度函数的推导
我们将从广义高斯函数f(x)=λ exp(−ax^2)开始,正态分布下的面积必须等于1所以我们首先设置广义高斯函数的值,对整个实数线积分等于1
这里将 -a- 替换为 a^2 稍微修改了高斯分布。为什么要这样做?因为它可以使用 换元积分 U-substitution 来解决这个积分。为什么我们可以这样做?因为 -a- 是一个任意常数,所以a^2 也只是一个任意常数,可以使用 U-substitution 求解。让 u=ax 和 du=a dx 这意味着 dx=du/a, 由于 λ 和 1/a 是常数,我们可以将它们移到积分符号之外,得到:
我们从上面关于高斯积分的讨论中知道,右边积分的值等于√π。这样就可以改成:
求解 -a- 可以这样写:
根据已经发现的λ 和 -a- 之间的关系,修改后的高斯下的面积总是等于 1 也是必须的,所以我们可以进一步修改,用 πλ^2 代替 a^2 并写:
无论 λ 的值如何,该曲线下的面积始终为 1。这是我们的概率密度函数。
确定归一化常数
在获得归一化概率分布函数之前还需要做一件事:必须将 λ 重写为随机变量方差 σ^2 的函数。这将涉及对整个实数线的方差表达式进行积分所以需要采用按分部积分来完成此操作。
如果给定一个概率密度函数 f(x) 和一个均值 μ,则方差定义为从均值平方(x - μ)^2的偏差乘以整个实数线的概率密度函数f(x)的积分:
假设μ=0,因为已经有了概率密度函数h(x),所以可以写成
用分部积分法求解这个积分有:
第一项归零是因为指数中的x^2项比前一项分子中的- x项趋近于∞的速度快得多所以我们得到
右边的被积函数是概率密度函数,已经知道当对整个实数线进行积分时它的值是1 :
求解 λ 得到:
将 λ 的 1/√2πσ^2 代入我们的修改后的公式(即我们的概率密度函数),我们得到:
剩下要做的就是将平均值 μ 放入指数的分子中,以便可以根据 μ 的值沿 x 轴平移图形:
这样就完成了方程推导
https://www.overfit.cn/post/ead43bb483024034bd397d6fc63b53eb
作者 :Manin Bocss
-
DerOfGauss(varargin):高斯函数的导数-matlab开发
2021-05-30 01:04:04DerOfGauss(sigma,n,m) 计算高斯函数的近似导数 -
VC6.0开发的高斯函数例子
2019-03-26 12:16:19VC6.0开发的高斯函数例子,可以加载数据,绘制分布曲线,计算比例等 -
高斯分布函数_将函数图像分成多个高斯函数的波形_matlab
2022-03-31 14:07:20资源名:高斯分布函数_将函数图像分成多个高斯函数的波形_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合... -
高斯函数生成高斯模板(含Python代码实现)
2022-03-06 10:34:56昨天,在组会上师弟提到了高斯模板,自己被导师抽查提问解释如何生成模板的。故,回忆一下过去的知识,并进行总结。学习如何通过高斯函数生成高斯模板,并用python代码实现生成高斯模板的过程。高斯函数
引言
2022年03月06日10:51:08
昨天,在组会上师弟提到了高斯模板,自己被导师抽查提问解释如何生成模板的。故,回忆一下过去的知识,并进行总结。学习如何通过高斯函数生成高斯模板,并用python代码实现生成高斯模板的过程。
参考文献
一维高斯函数
f ( x ) = 1 σ 2 π exp ( − ( x − μ ) 2 2 σ 2 ) f(x)=\frac{1}{\sigma \sqrt{2 \pi}} \exp \left(-\frac{(x-\mu)^{2}}{2 \sigma^{2}}\right) f(x)=σ2π1exp(−2σ2(x−μ)2)
二维高斯函数
G ( x , y ) = 1 2 π σ 2 exp ( − ( ( x − μ ) 2 + ( y − u ) 2 ) 2 σ 2 ) G(x,y)=\frac{1}{2 \pi \sigma^2 } \exp \left(-\frac{((x-\mu)^{2}+(y-u)^2)}{2 \sigma^{2}}\right) G(x,y)=2πσ21exp(−2σ2((x−μ)2+(y−u)2))
Word is Cheap Show you the Code
""" Author: yida Time is: 2022/3/5 20:42 this Code: 使用高斯函数生成高斯模板 """ import numpy as np def gauss(x, y, u=0, s=0.8): """ 输入x, y,均值及标准差生成高斯函数对应的值 :param x:x坐标 :param y:y坐标 :param u:均值 :param s:sigma标准差 :return:结果 """ g = (1 / (2 * np.pi * s ** 2)) * np.exp(-(((x - u) ** 2 + (y - u) ** 2) / (2 * s ** 2))) return g def make_template(k=3): """ 输入模板要求为奇数, 生成对应的x, y坐标, 然后将x, y坐标拿进去生成高斯模板, 最后reshape :param k:模板的大小 :return: """ print("初始化高斯模板坐标...大小为{}×{}...".format(k, k)) # 找到行与列的关系 用于生成横纵坐标 if k % 2 == 1: t = (k - 1) // 2 # 坐标的范围 m = np.arange(-t, t + 1) # 重复得到x坐标 # x = np.array([k * [i] for i in range(-t, t + 1)]).flatten() x = np.repeat(m, k) # 重复得到y坐标 # y = np.array(k * [i for i in range(-t, t + 1)]) y = np.repeat(m.reshape(1, -1), k, axis=0).flatten() # 利用zip得到坐标数组 point = list(zip(x, y)) # 循环输出坐标, 调整成行和列的形式 for i in range(k): print(point[i * k:i * k + k]) return x, y else: print("请正确输入模板大小...") def normalization(arr): """ 输入arr, 归一化权重和为1 :param arr:待归一化矩阵 :return: """ print("\n正在进行归一化...权重和为1...") arr = arr / np.sum(arr) print(arr) return arr def integer(arr): """ 输入arr, 将其转换成整数高斯模板 :param arr:归一化后的高斯模板 :return: """ print("\n整形化高斯模板...") # 取第一个值 然后将左上角第一个值变成1 其它的值对应改变 并转换成整形 v = arr[0][0] arr = np.int32(arr / v) s = np.sum(arr) print(arr, ' 1/' + str(np.sum(arr))) return arr if __name__ == '__main__': # 设置高斯模板大小, 模板请输入奇数 kernel = 3 # 初始化高斯模板 x, y = make_template(k=kernel) # 设置高斯函数的均值和标准差 mean = 0 sigma = 0.8 # 得到结果 result = gauss(x, y, u=mean, s=sigma) # reshape gauss_template = np.reshape(result, (kernel, kernel)) print("\n高斯模板如下:\n", gauss_template) # 归一化 arr_nor = normalization(gauss_template) # 整数化 arr_int = integer(arr_nor)
输出
总结
- 使用均值为0的二维高斯函数,生成的模板是以中心原点
(0, 0)
左右对称的 - 将坐标代入高斯函数,通过公式计算得到高斯模板(此时为
小数模板
) - 需要
归一化
,让高斯模板的权重和为1(高斯函数的特性,积分为1),这样就同高斯函数保存一致,以中心点为中心,往四周衰减,且权重能与高斯函数变换趋势保持一致 - 将高斯模板转换为(
整数模板
),将左上角第一个值a变为1(除以本身),其它值均除a得到结果(并向下取整) - 模板的使用
同卷积
,当为小数模板时直接点乘得到结果向下取整
;当为整数模板时直接点乘并除以全部系数的和(归一化权重为1)向下取整得到结果
- 使用均值为0的二维高斯函数,生成的模板是以中心原点
-
基于高斯函数递减惯性权重的粒子群优化算法.pdf
2021-09-29 09:45:15基于高斯函数递减惯性权重的粒子群优化算法.pdf -
非对称高斯函数的时变体数据特征跟踪及可视化
2021-02-11 10:52:55非对称高斯函数的时变体数据特征跟踪及可视化 -
基于多峰高斯函数的直方图规定化算法
2021-03-17 19:30:36基于多峰高斯函数的直方图规定化算法 -
基于自适应高斯函数的鲁棒超分辨率图像复原
2019-12-26 04:43:53基于自适应高斯函数的鲁棒超分辨率图像复原,曾雪迎,,为增强复原图像对模型误差的鲁棒性,本文在正则化框架下提出了一种基于自适应数据保真项和改进的双边全变差正则项的超分辨率复原� -
高斯函数的特征函数的证明
2013-04-14 10:24:03高斯函数的特征函数的证明,一唯正态分布的特征函数的证明。 -
编写集成高斯函数的Python函数的最佳方法?
2020-12-10 11:29:17好吧,你似乎对一些事情很困惑。让我们从头开始:你提到了一个“多维函数”,但接着讨论通常的单变量高斯曲线。...但是你似乎只是在讨论正则的单变量高斯函数,它更容易处理,积分,以及所有这些。单变量高斯... -
整数阶一维高斯函数:执行任意正阶的高斯函数。-matlab开发
2021-06-01 19:01:40计算一维高斯函数: exp(-log(2)*(2*(x-x0)./FWHM).^(2*floor(abs(order)))); 在哪里: x = 坐标x0 = 功能中心FWHM = 函数的全宽半最大值阶 = 高斯阶 正态高斯是 1 阶的。 注意 FWHM = (1/e 半宽)/sqrt(2*log(2)) ... -
高斯_高斯函数处理手势图片_手势_
2021-09-29 05:11:22进行高斯建模,对手势图片进行处理,最终可以得到有用的二值图像,中间经过了去噪,中值滤波,形态学处理等步骤。