2017-12-08 22:05:19 su_yuheng 阅读数 118
  • OpenCV图像分割实战视频教程

    基于OpenCV新版本3.2 讲述,详细解释了KMeans、高斯混合模型(GMM)、分水岭变换、Grabcut等算法基本原理与在图像分割中的应用,基于OpenCV相关API演示每种图像分割方法,通过证件照背景融合替换与视频背景融合替换两个真实案例,讲述了图像分割在实际应用场景中的实现与演示。

    2624 人正在学习 去看看 贾志刚

高斯函数以及在图像处理中的应用总结

1、一维高斯函数:

高斯函数

a表示得到曲线的高度,b是指曲线在x轴的中心,c指width(与半峰全宽有关),图形如下:

2、根据一维高斯函数,可以推导得到二维高斯函数:

 


在图形上,正态分布是一种钟形曲线,越接近中心,取值越大,越远离中心,取值越小。
计算平均值的时候,我们只需要将"中心点"作为原点,其他点按照其在正态曲线上的位置,分配权重,就可以得到一个加权平均值。如:通常,图像处理软件会提供"模糊"(blur)滤镜,使图片产生模糊的效果。

 

"高斯模糊"(Gaussian Blur)。它将正态分布(又名"高斯分布")用于图像处理。

 

数据平滑技术(data smoothing),适用于多个场合,图像处理恰好提供了一个直观的应用实例。

高斯模糊的原理

所谓"模糊",可以理解成每一个像素都取周边像素的平均值。

 

上图中,2是中间点,周边点都是1。

"中间点"取"周围点"的平均值,就会变成1。在数值上,这是一种"平滑化"。在图形上,就相当于产生"模糊"效果,"中间点"失去细节。

 

显然,计算平均值时,取值范围越大,"模糊效果"越强烈。

 

上面分别是原图、模糊半径3像素、模糊半径10像素的效果。模糊半径越大,图像就越模糊。从数值角度看,就是数值越平滑。

接下来的问题就是,既然每个点都要取周边像素的平均值,那么应该如何分配权重呢?

如果使用简单平均,显然不是很合理,因为图像都是连续的,越靠近的点关系越密切,越远离的点关系越疏远。因此,加权平均更合理,距离越近的点权重越大,距离越远的点权重越小。

正态分布的权重

正态分布显然是一种可取的权重分配模式。

 

在图形上,正态分布是一种钟形曲线,越接近中心,取值越大,越远离中心,取值越小。

计算平均值的时候,我们只需要将"中心点"作为原点,其他点按照其在正态曲线上的位置,分配权重,就可以得到一个加权平均值。

高斯函数

上面的正态分布是一维的,图像都是二维的,所以我们需要二维的正态分布。

"高斯函数"(Gaussian function)。它的一维形式是

 

其中,μ是x的均值,σ是x的方差。因为计算平均值的时候,中心点就是原点,所以μ等于0。

根据一维高斯函数,可以推导得到二维高斯函数

有了这个函数 ,就可以计算每个点的权重了。

权重矩阵

假定中心点的坐标是(0,0),那么距离它最近的8个点的坐标如下:

 

更远的点以此类推。

为了计算权重矩阵,需要设定σ的值。假定σ=1.5,则模糊半径为1的权重矩阵如下:

这9个点的权重总和等于0.4787147,如果只计算这9个点的加权平均,还必须让它们的权重之和等于1,因此上面9个值还要分别除以0.4787147,得到最终的权重矩阵。

 

计算高斯模糊

有了权重矩阵,就可以计算高斯模糊的值了。

假设现有9个像素点,灰度值(0-255)如下:

 

每个点乘以自己的权重值:

 

得到

 

将这9个值加起来,就是中心点的高斯模糊的值。

对所有点重复这个过程,就得到了高斯模糊后的图像。如果原图是彩色图片,可以对RGB三个通道分别做高斯模糊。

二、高斯(核)函数简介

1函数的基本概念

所谓径向基函数 (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)由于高斯函数的可分离性,大高斯滤波器可以得以有效地实现.二维高斯函数卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的相同一维高斯函数卷积.因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长.

参考:
http://www.ruanyifeng.com/blog/2012/11/gaussian_blur.html

http://www.cnblogs.com/pzxbc/archive/2012/02/14/2351708.html

http://baike.baidu.com/view/1097446.htm?fr=aladdin

 

2018-06-24 14:22:51 zhanghm1995 阅读数 3313
  • OpenCV图像分割实战视频教程

    基于OpenCV新版本3.2 讲述,详细解释了KMeans、高斯混合模型(GMM)、分水岭变换、Grabcut等算法基本原理与在图像分割中的应用,基于OpenCV相关API演示每种图像分割方法,通过证件照背景融合替换与视频背景融合替换两个真实案例,讲述了图像分割在实际应用场景中的实现与演示。

    2624 人正在学习 去看看 贾志刚
高斯函数广泛应用于统计学领域,用于表述正态分布,在信号处理领域,用于定义高斯滤波器,在图像处理领域,二维高斯核函数常用于高斯模糊,在数学领域,主要用于解决热力方程和扩散方程。


正态分布与高斯函数

高斯函数其实是一族函数,而满足正态分布的高斯函数如下所示

其为正态分布随机变量的概率密度函数,满足积分为1的特性。
理论上能够证明假设把很多小作用加起来看做一个变量,那么这个变量服从正态分布。
为了理解正态分布,需要补充一点概率论的知识:
有几种不同的方法用来说明一个随机变量,最直观的方法是概率密度函数,这样的方法可以表示随机变量每一个取值有多大的可能性;累积分布函数是一种概率上更加清楚的表示方法。



二维高斯函数

相比于一维高斯函数,二维高斯函数在计算机视觉领域用处广泛,利用0均值的二维高斯函数,可以生成高斯卷积核,用于图像处理中的高斯滤波,实现高斯模糊的效果,有效去除高斯噪声。

二维高斯函数的表达式和形状如下所示,为一个立体“钟状图”。



2016-11-04 11:34:26 sunlinju 阅读数 2795
  • OpenCV图像分割实战视频教程

    基于OpenCV新版本3.2 讲述,详细解释了KMeans、高斯混合模型(GMM)、分水岭变换、Grabcut等算法基本原理与在图像分割中的应用,基于OpenCV相关API演示每种图像分割方法,通过证件照背景融合替换与视频背景融合替换两个真实案例,讲述了图像分割在实际应用场景中的实现与演示。

    2624 人正在学习 去看看 贾志刚

高斯函数的应用广泛,这里讲述其在平滑图像时的用法。

1、高斯曲线绘制

绘制曲线参考公式:

Z=12πσ2exp([(Xu)2+(Yu)2]2σ2)

X,Y表示网格的大小;

%高斯曲线的绘制-2016-11-04-Sunday
clc;
clear all;
gridSize=40;%网格大小
X=0:gridSize-1;
Y=0:gridSize-1;
sigma2=20;%方差
u=20;%均值
Z = zeros(gridSize, gridSize);

for row = 1:gridSize
    for col = 1:gridSize
        numerator(row, col) = (X(row) - u)^2 + (Y(col) - u)^2;%高斯函数内部分子计算
    end
end
Z = exp(-numerator/(2*sigma2))/(2*pi * sigma2);%高斯函数的值,曲面的高度
surf(X, Y, Z);
title('Guassian')
 



Figure 1. 图像边界分类

我们得到上述三维图形的底面(网格会将底面网格化,离散化)的投影,然后将曲面的高度换算成网格里面的值,就是我们要的模板。
假设我们的模板放在矩阵M中,M的大小为(2k+1)*( 2k+1),那么M(i,j)的值为:
M(i,j)=12πσ2exp([(ik1)2+(jk1)2]2σ2)

%高斯平滑-2016-11-04
clc;
clear all;
I = imread('lena.tiff');%test2
 I=rgb2gray(I);
Img = double(I);
k=1;              %模板长度的一半
row = 2*k+1;      %模板长度
col = 2*k+1;
sigma2=1;         %方差
for i=1 : row
    for j=1 : col
        fenzi=double((i-k-1)^2+(j-k-1)^2);
        A(i,j)=exp(-fenzi/(2*sigma2))/(2*pi*sigma2);
    end
end
Img1 = imfilter(I,A,'conv');  
imshow(Img1),title('高斯滤波,3X3,sigma=1') 
 



Figure 1. 原灰度图像



Figure 1. 3x3模板不同的sigma2值得到的模板M对图像影响


Figure 1. sigma2=1时不同的模板大小得到的模板M对图像的影响。

补充1:从上面的实验可以看到sigma2越小,钟型越窄,图像越亮;模板的大小对于本实验几乎没有什么影响。(这个实验与图像平滑的关系是什么?)
补充1:在参考文献1中,描述到如何将小数的模板整型化,但是在实际实验中发现在3x3模板中,sigma2=3与sigma2=9具有相同的整型模板,所以对此看法存在怀疑。
%将小数模板整型化语句 
C=floor(A.*(1/A(1,1)));

补充3:高斯模板的size和sigma之间的关系(这里举例在opencv上的关系,在其他系统中对应关系存在差异)
Sigma=0.3((size1)0.51)+0.8

size=6Sigma+1

参考:
1、http://blog.csdn.net/shanchuan2012/article/details/51024550《如何得到高斯滤波器的整数模板》

2019-10-03 16:57:51 weixin_43823854 阅读数 38
  • OpenCV图像分割实战视频教程

    基于OpenCV新版本3.2 讲述,详细解释了KMeans、高斯混合模型(GMM)、分水岭变换、Grabcut等算法基本原理与在图像分割中的应用,基于OpenCV相关API演示每种图像分割方法,通过证件照背景融合替换与视频背景融合替换两个真实案例,讲述了图像分割在实际应用场景中的实现与演示。

    2624 人正在学习 去看看 贾志刚

https://www.cnblogs.com/herenzhiming/articles/5276106.html

高斯函数以及在图像处理中的应用总结
1、一维高斯函数:
在这里插入图片描述
高斯函数 a表示得到曲线的高度,b是指曲线在x轴的中心,c指width(与半峰全宽有关),图形如下:
在这里插入图片描述
2、根据一维高斯函数,可以推导得到二维高斯函数:
在这里插入图片描述

在这里插入图片描述

在图形上,正态分布是一种钟形曲线,越接近中心,取值越大,越远离中心,取值越小。
计算平均值的时候,我们只需要将"中心点"作为原点,其他点按照其在正态曲线上的位置,分配权重,就可以得到一个加权平均值。例如:通常,图像处理软件会提供"模糊"(blur)滤镜,使图片产生模糊的效果。

在这里插入图片描述

"高斯模糊"(Gaussian Blur)。它将正态分布(又名"高斯分布")用于图像处理。
在这里插入图片描述
数据平滑技术(data smoothing),适用于多个场合,图像处理恰好提供了一个直观的应用实例。

高斯模糊的原理

所谓"模糊",可以理解成每一个像素都取周边像素的平均值。

在这里插入图片描述

上图中,2是中间点,周边点都是1。

在这里插入图片描述

“中间点"取"周围点"的平均值,就会变成1。在数值上,这是一种"平滑化”。在图形上,就相当于产生"模糊"效果,"中间点"失去细节。

在这里插入图片描述

显然,计算平均值时,取值范围越大,"模糊效果"越强烈。

在这里插入图片描述

上面分别是原图、模糊半径3像素、模糊半径10像素的效果。模糊半径越大,图像就越模糊。从数值角度看,就是数值越平滑。

接下来的问题就是,既然每个点都要取周边像素的平均值,那么应该如何分配权重呢?

如果使用简单平均,显然不是很合理,因为图像都是连续的,越靠近的点关系越密切,越远离的点关系越疏远。因此,加权平均更合理,距离越近的点权重越大,距离越远的点权重越小。

正态分布的权重

在这里插入图片描述

正态分布显然是一种可取的权重分配模式。

在图形上,正态分布是一种钟形曲线,越接近中心,取值越大,越远离中心,取值越小。

计算平均值的时候,我们只需要将"中心点"作为原点,其他点按照其在正态曲线上的位置,分配权重,就可以得到一个加权平均值。

高斯函数

上面的正态分布是一维的,图像都是二维的,所以我们需要二维的正态分布。

在这里插入图片描述

"高斯函数"(Gaussian function)。它的一维形式是

在这里插入图片描述

其中,μ是x的均值,σ是x的方差。因为计算平均值的时候,中心点就是原点,所以μ等于0。

在这里插入图片描述

根据一维高斯函数,可以推导得到二维高斯函数

在这里插入图片描述

有了这个函数 ,就可以计算每个点的权重了。

权重矩阵

假定中心点的坐标是(0,0),那么距离它最近的8个点的坐标如下:
在这里插入图片描述

更远的点以此类推。

为了计算权重矩阵,需要设定σ的值。假定σ=1.5,则模糊半径为1的权重矩阵如下:
在这里插入图片描述

这9个点的权重总和等于0.4787147,如果只计算这9个点的加权平均,还必须让它们的权重之和等于1,因此上面9个值还要分别除以0.4787147,得到最终的权重矩阵。

在这里插入图片描述

计算高斯模糊

有了权重矩阵,就可以计算高斯模糊的值了。

假设现有9个像素点,灰度值(0-255)如下:
在这里插入图片描述

每个点乘以自己的权重值:

得到

在这里插入图片描述

将这9个值加起来,就是中心点的高斯模糊的值。 即就是一种矩阵卷积的操作。

对所有点重复这个过程,就得到了高斯模糊后的图像。如果原图是彩色图片,可以对RGB三个通道分别做高斯模糊。

二、高斯(核)函数简介

1函数的基本概念

所谓径向基函数 (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)由于高斯函数的可分离性,大高斯滤波器可以得以有效地实现.二维高斯函数卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的相同一维高斯函数卷积.因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长.

参考:
http://www.ruanyifeng.com/blog/2012/11/gaussian_blur.html

http://www.cnblogs.com/pzxbc/archive/2012/02/14/2351708.html

http://baike.baidu.com/view/1097446.htm?fr=aladdin

2012-11-16 12:15:20 tongfy0000 阅读数 1164
  • OpenCV图像分割实战视频教程

    基于OpenCV新版本3.2 讲述,详细解释了KMeans、高斯混合模型(GMM)、分水岭变换、Grabcut等算法基本原理与在图像分割中的应用,基于OpenCV相关API演示每种图像分割方法,通过证件照背景融合替换与视频背景融合替换两个真实案例,讲述了图像分割在实际应用场景中的实现与演示。

    2624 人正在学习 去看看 贾志刚

图像高斯滤波

高斯函数  

  

其中 a、b 与 c 为实数常数 ,且a > 0.

       c^2 = 2 的高斯函数是傅立叶变换的特征函数。这就意味着高斯函数的傅立叶变换不仅仅是另一个高斯函数,而且是进行傅立叶变换的函数的标量倍。

 

高斯分布:

正态分布Normal distribution)又名高斯分布Gaussian distribution),是一个在数学物理工程领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。

随机变量服从一个位置参数为、尺度参数为的概率分布,记为:

则其概率密度函数

正态分布的数学期望值或期望值等于位置参数,决定了分布的位置;其方差的开平方或标准差等于尺度参数,决定了分布的幅度。

 

高斯核函数:

数学表示:

  所谓径向基函数 (Radial Basis Function 简称 RBF),就是某种沿径向对称的标量函数。 通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数,可记作 k(||x-xc||), 其作用往往是局部的,即当x远离xc时函数取值很小。

  最常用的径向基函数是高斯核函数,形式为 k(||x-xc||)=exp{- ||x-xc||^2/2*σ^2) } 其中xc为核函数中心,σ为函数的宽度参数,控制了函数的径向作用范围。

 

         图像处理高斯核函数:

         频域表示:

表示频域上的点距离傅里叶变换原点的距离;为截止频率。

         (注:A取值为1,使用该函数计算结果与matlab的fspecial计算结果相同)

         对应的时域表示:

大多数教科书和论文中使用高斯分布的公式作为时域高斯滤波器设计使用公式。

 

时域中常用的高斯模板:

若使用3×3模板:

 

若横纵坐标两个方向的方差不一样,则需要写成展开式。具体可参考论文Fast Anisotropic Gauss Filtering。网址:

http://www.science.uva.nl/research/publications/2003/GeusebroekTIP2003/

里面有代码可以下载,接口形式很简单。可直接调用。

 

没有更多推荐了,返回首页