高斯函数

转载 2015年11月18日 21:36:52

高斯模糊是一种图像模糊滤波器,它用正态分布计算图像中每个像素的变换。N 维空间正态分布方程为

G(r) = \frac{1}{\sqrt{2\pi \sigma^2}^N} e^{-r^2/(2 \sigma^2)}

在二维空间定义为

G(u,v) = \frac{1}{2\pi \sigma^2} e^{-(u^2 + v^2)/(2 \sigma^2)}

其中 r 是模糊半径 (r2 = u2 + v2),σ 是正态分布的标准偏差。在二维空间中,这个公式生成的曲面的等高线是从中心开始呈正态分布的同心圆。分布不为零的像素组成的卷积矩阵与原始图像做变换。每个像素的值都是周围相邻像素值的加权平均。原始像素的值有最大的高斯分布值,所以有最大的权重,相邻像素随着距离原始像素越来越远,其权重也越来越小。这样进行模糊处理比其它的均衡模糊滤波器更高地保留了边缘效果,参见尺度空间实现

理论上来讲,图像中每点的分布都不为零,这也就是说每个像素的计算都需要包含整幅图像。在实际应用中,在计算高斯函数的离散近似时,在大概3σ距离之外的像素都可以看作不起作用,这些像素的计算也就可以忽略。通常,图像处理程序只需要计算 (6 \sigma + 1) \times (6 \sigma + 1) 的矩阵就可以保证相关像素影响。

除了圆形对称之外,高斯模糊也可以在二维图像上对两个独立的一维空间分别进行计算,这叫作线性可分。这也就是说,使用二维矩阵变换得到的效果也可以通过在水平方向进行一维高斯矩阵变换加上竖直方向的一维高斯矩阵变换得到。从计算的角度来看,这是一项有用的特性,因为这样只需要 O(n \times M \times N) + O(m \times M \times N) 次计算,而不可分的矩阵则需要 O(m \times n \times M \times N)次计算,其中 M,N 是需要进行滤波的图像的维数,mn 是滤波器的维数。

对一幅图像进行多次连续高斯模糊的效果与一次更大的高斯模糊可以产生同样的效果,大的高斯模糊的半径是所用多个高斯模糊半径平方和的平方根。例如,使用半径分别为 6 和 8 的两次高斯模糊变换得到的效果等同于一次半径为 10 的高斯模糊效果,\sqrt{6\times6 + 8\times8} = 10。根据这个关系,使用多个连续较小的高斯模糊处理不会比单个高斯较大处理时间要少。

在减小图像尺寸的场合经常使用高斯模糊。在进行欠采样的时候,通常在采样之前对图像进行低通滤波处理。这样就可以保证在采样图像中不会出现虚假的高频信息。高斯模糊有很好的特性,如没有明显的边界,这样就不会在滤波图像中形成震荡。

高斯函数

float GetGaussianDistribution( float x, float y, float rho ) {
    
float g = 1.0f / sqrt( 2.0f * 3.141592654f * rho * rho );
    
return g * exp( -(x * x + y * y) / (2 * rho * rho) );
}
 
void GetGaussianOffsets( bool bHorizontal, D3DXVECTOR2 vViewportTexelSize,
                         D3DXVECTOR2
* vSampleOffsets, float* fSampleWeights ) {
    
// Get the center texel offset and weight
    fSampleWeights[0= 1.0f * GetGaussianDistribution( 002.0f );
    vSampleOffsets[
0= D3DXVECTOR2( 0.0f0.0f );
    
    
// Get the offsets and weights for the remaining taps
    if( bHorizontal ) {
        
forint i = 1; i < 15; i += 2 ) {
            vSampleOffsets[i 
+ 0= D3DXVECTOR2(  i * vViewportTexelSize.x, 0.0f ); //纹理坐标偏移,计算纹理坐标值(像素右方7像素)
            vSampleOffsets[i + 1= D3DXVECTOR2( -* vViewportTexelSize.x, 0.0f );  //像素左方7像素

            fSampleWeights[i 
+ 0= 2.0f * GetGaussianDistribution( float(i + 0), 0.0f3.0f ); //原像素左方权重值
            fSampleWeights[i + 1= 2.0f * GetGaussianDistribution( float(i + 1), 0.0f3.0f ); 
        }
    }

    
else {
        
forint i = 1; i < 15; i += 2 ) {
            vSampleOffsets[i 
+ 0= D3DXVECTOR2( 0.0f,  i * vViewportTexelSize.y );
            vSampleOffsets[i 
+ 1= D3DXVECTOR2( 0.0f-* vViewportTexelSize.y );
            
            fSampleWeights[i 
+ 0= 2.0f * GetGaussianDistribution( 0.0ffloat(i + 0), 3.0f );
            fSampleWeights[i 
+ 1= 2.0f * GetGaussianDistribution( 0.0ffloat(i + 1), 3.0f );
        }
    }
}
 
摘自http://www.cnblogs.com/ttthink/articles/1577789.html

高斯函数的详细分析

摘要     论文中遇到很重要的一个元素就是高斯核函数,但是必须要分析出高斯函数的各种潜在属性,本文首先参考相关材料给出高斯核函数的基础,然后使用matlab自动保存不同参数下的高斯核函数的变化gif...
  • jorg_zhao
  • jorg_zhao
  • 2016年09月28日 11:19
  • 22375

高斯(核)函数简介

keendawn 的 高斯(核)函数简介 1函数的基本概念 所谓径向基函数 (Radial Basis Function 简称 RBF), 就是某种沿径向对称的标量函数。 通常定义...
  • caolin_summer
  • caolin_summer
  • 2016年01月11日 11:13
  • 11278

高斯函数的理解

转载   http://lps-683.iteye.com/blog/2251180        这一次,我将较为深入地探讨高斯滤波,包括参数的影响、参数的选取、高斯模板的形成以及自行编程实现...
  • Ouyangjianxiu
  • Ouyangjianxiu
  • 2016年12月29日 15:38
  • 747

二维高斯函数

转至:http://blog.sina.com.cn/s/blog_6e4fdcbd0100qr7b.html
  • ZYTTAE
  • ZYTTAE
  • 2014年11月13日 20:26
  • 6247

两个高斯函数的卷积仍为一高斯函数

这几天写论文,论文里面涉及到高斯平滑,并且运用到了高斯平滑的一个特性:先用高斯窗口为a的模板平滑,然后在用高斯窗口为b的模板平滑,效果等效于用窗口为c的模板平滑一次,其中c^2=a^2+b^2。这就用...
  • liguan843607713
  • liguan843607713
  • 2014年12月28日 18:56
  • 8861

二维高斯核函数(python)

二维高斯核函数python版
  • qq_16013649
  • qq_16013649
  • 2017年12月12日 18:38
  • 155

高斯取整函数与Beatty定理

http://www.blogbus.com/yjq24-logs/42304551.html 高斯取整函数又叫向下取整函数,常见的记法如下: ,既然是向下取整,也就是说[-3.5]=-4,这个...
  • u010900851
  • u010900851
  • 2013年08月29日 20:13
  • 979

高斯函数的傅里叶变换

高斯一维函数: 高斯二维函数: 傅里叶变换: 令 简化高斯函数为: 则高斯函数的傅里叶变换为: 然后把简化的函数变为高斯函数,即令 ...
  • majinlei121
  • majinlei121
  • 2015年07月03日 20:11
  • 13038

两个高斯函数的卷积仍为一高斯函数

原文:http://blog.csdn.net/liguan843607713/article/details/42215965 两个高斯函数的卷积为一新的高斯函数,新高斯函数的方差为原来两个高...
  • helei001
  • helei001
  • 2015年11月16日 09:52
  • 1810

高斯函数具有五个重要的性质

高斯函数具有五个重要的性质,这些性质使得它在早期图像处理中特别有用.这些性质表明,高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器,且在实际图像处理中得到了工程人员的有效使用.高斯函数具...
  • liu_guanzhang
  • liu_guanzhang
  • 2013年04月14日 09:52
  • 804
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:高斯函数
举报原因:
原因补充:

(最多只允许输入30个字)