您当前的位置:首页 > 生活 > 内容

积分滤波算法(详细解读高斯滤波---卷积和积分运算)

积分滤波算法(详细解读高斯滤波---卷积和积分运算)

信号处理中的一个重要操作是卷积。刚开始学卷积的时候,往往是连续的情况。

两个函数f (x)和g (x)的卷积是f(u)g(x-u)du。当然,卷积的一些性质也不难证明,比如交换、组合等。但初学者不要我对卷积运算的起源了解不多。其实从离散的情况看卷积可能更清楚。对于两个序列F [n]和G [n]来说,卷积一般可以定义为s[x]=f[k]g[x-k]卷积的典型例子,其实就是初中学过的多项式的乘法,比如(x * x 3 * x 2) (2 *。(x * x3 * x2)(2 * X5)=(x * x3 * x2)* 2 * x(x * x3 * x2)* 5=2 * x * x3 * 2 * x * x2 * 2 * X5 * x * x3 * 5 * 2 * x * x3 * 21 * 5x * x2 * 23 * 5x 2 * 5-2 * x * x * X11 * x * x19 * X10实际上,从线性代数中我们可以知道,多项式构成一个向量空间,它的基可以选择为{1,x,(x*x 3*x 2)对应于(1 3 2),(2 * x 5)对应于(2,5)。线性空间中定义的两个向量之间没有卷积运算,只有加法和数乘。其实多项式的乘法在线性空间是无法解释的。可见线性空间的理论是多么有限。但是如果我们按照上面对向量卷积的描述(1 3 2)*(2 5)是2 3 1 _ _ 2 5-2 2 3 1 _ 2 5-6 5=112 3 12 5-4 15=19 _ 2 3 12 5-(x * x 3 * x 2)(2 * x 5)=2 * x * x 11 * x * x 19 * x 10好像很神奇,结果和传统方法得到的结果一模一样。换句话说,多项式的乘法等价于系数向量的卷积。其实想想,原因也很简单。卷积运算其实就是单独求x。(传统的方法是先相乘,相似项组合时再相加。)以x*x的系数为例,得到x*x,不是x*x乘以5就是3x乘以2x,即231 _ 25-65=11。其实这就是向量的内积。所以,卷积运算可以看作是一个级数。[231000][023100]==A[002310][00231][002500]=XB=Ax=[2111910]如果从线的角度看AX,B的每一条线都是内积。A的每一行都是序列[2 3 1]的一个移动位置。——显然,在这个特定的背景下,我们知道卷积满足交换和组合定律,因为,众所周知,多项式的乘法满足交换和组合定律。总的来说,也是如此。在这里,我们发现多项式除了构成特定的线性空间之外,在基之间还有某种特殊的联系,而且是这种联系。老师反复告诫,橘子是橘子,苹果是苹果,但它们可以不要混在一起。所以有(3,5) (5,3)=(8,8)。是的,无论怎么加橘子和苹果,都不会有问题。但是,如果你以橘子考虑橘子,或者以苹果考虑橘子,这个问题就不好解释了。再比如复数。如果只把复数定义为对(a,b ),只在线性空间的层面上看C2,那就太简单了。其实只要加上(a,b)*(c,d)=(ac-bd,ad bc),情况马上就变了。众所周知复变函数的内容是多么丰富多彩。另外,回想一下信号处理中的一个基本定理,即频域的乘积等价于信号在时域或空间域的卷积。和这里的情况完全相当。这背后存在怎样的隐藏状态关系,需要继续详细讨论。从这里开始,高阶卷积运算实际上只是初等运算的抽象。我们中学学过的数学里面有很多深刻的内容(比如交换代数)。因此,它当你&# 039;你很暖和。其实这个道理一点也不复杂。人类繁衍了几千年,但在过去的n年里,人们只知道男人和女人可以繁衍后代是因为他们的精子。精子和卵子的发现,生殖机制的研究,也就是最近几年。

孔子说,道是在日常生活中的人际关系。看来,我们应该更仔细地看看我们的周围,甚至我们自己,这样我们才能知道它是什么,为什么会这样。"

-

从上面我们知道了卷积的起源。让让我们寻找卷积的官方定义:数学中两个函数的无穷积分运算。对于函数f1(t)和f2(t),它们的卷积表达式如下:其中:* 是卷积运算符号。

在泛函分析中,卷积(卷积),卷积或卷积(英文:Convolution)是由两个函数F和G生成第三个函数的数学算子,表示函数F和G翻转平移后重叠部分的累加。f和g的卷积称为f(t)*g(t),是一个函数和另一个函数的乘积经过翻转平移后的积分,是平移的函数。

f和g的卷积可以定义为:z(t)=f(t)*g(t)=f(m)g(t-m)dm。

而卷积定理指出,两个二维连续函数在空间域的卷积可以通过求两个傅里叶变换对应乘积的逆变换来获得。相反,频域卷积可以通过空间域乘积的傅里叶变换得到。

其实,话虽如此,我还是不我不太明白为什么以及如何卷积图像。

1.2卷积运算

说到卷积运算,首先卷积核是必不可少的。这个卷积核实际上是一个固定大小的数组,由数值参数组成。数组的参考点通常位于数组的中心,数组的大小称为内核支撑。就单一技术而言,核心支持实际上只由核心数组的非零部分组成。或者像其他话一样,卷积核就是所谓的模板。

卷积其实就是一个过程,可以看作是加权求和。所用图像区域的每个像素分别乘以卷积核(权重矩阵)的每个元素,所有乘积之和作为该区域中心像素的新值。卷积的例子:

3 * 3像素区域R与卷积核G的卷积运算:R5(中心像素)=R1 G 1 R 2G 2r 3G 4G 5 R 6 R 7G 7 R 8 R 9g 9

如果对图像进行卷积,可以使用以阵列为中心和参考点的3*3卷积核。首先,核的参考点位于图像的第一个像素,核的其余元素覆盖图像的相应局部像素。对于每个核点,我们可以得到这个点的值和图像中对应图像点的值。将这些值相乘并求和,并将结果放在与输入图像的参考点相对应的位置。通过在整个图像上扫描卷积核,对图像的每个点重复该操作。最后可以得到图像的卷积图像。

当然,我们可以用等式来表示这个过程,定义图像为I(x,y),核为G(i,y)(其中0)参考点位于(ai,aj)坐标上,那么卷积H(x,y)定义如下:

H(x,y)=sum[ I(x i-ai,y j-aj)G(i,j)]。

通用模板(卷积核)

连续空间的卷积定义为f(x)和g(x)的卷积,是f(t-x)g(x)在T从负无穷到正无穷的积分值,t-x要在f(x)的定义域内,所以看似很大的积分实际上是在一定的范围内。实际过程是f(x)先反转Y轴,再沿X轴平移T。两者乘积的价值再次整合。想象一下,如果g(x)或f(x)是单位阶跃函数。那么就是f(t-x)和g(x)相交的面积。这是卷积。把积分符号变成求和,就是离散空间的卷积定义。

1.3重要性

卷积是各种图像变换的基础,一个特殊卷积的作用是由其卷积核(模板)的形式决定的。高斯变换是图像与高斯函数的卷积。

平滑:平滑类型:简单模糊(邻居求和并缩放)、无缩放变换的简单模糊(邻居求和)、中值模糊(中值滤波)、高斯模糊(高斯卷积)、双边模糊(双线性滤波)。

膨胀和腐蚀。

安溪官桥镇坡

拉普拉斯变换,canny算子(导数)

卷积属性:

1.卷积的符号表达式表明卷积是一种特殊类型的乘法,乘法的一些代数性质可以用于卷积。

(1)交换律:f1(t)*f2(t)=f2(t)*f1(t)(2)分配律:F1(t)*[F2(t)F3(t)]=F1(t)* F2(t)* F3(t)(3)结合律:[F1(t)* F2(t)]* F3(t)=F1(t)*[F2(t)* F3(t)](4)移位不变量:若f1(t)*f2(t)=f3(t),则F1 (t-t0

3.奇异信号的卷积特性;

(1)f(t)*(t)=f(t)f(t)*(t-t0)=f(t-t0)f(t-t1)*(t-t0)=f(t-t0-t1)(2)(t(t-t0)(5)f(t)*(t)* u(t)=f (t)* u(t)=f(t)f(t)*'(t)* tu(t)=f '(t)*tu(t)=f(t)

那么,图像卷积和积分图像是什么关系呢?如果你知道,请告诉我。

2整体图像

surf算法中应使用积分图像的概念。借助积分图像,将图像和高斯二阶微分模板的滤波转化为积分图像的加法和减法。积分图像的概念是由viola和Jones提出的,而使用相似积分图像进行盒滤波是由Simard等人提出的。

积分图像中任意一点(I,j)的值为ii(i,j),是原始图像左上角到任意一点(I,j)的对角线区域的灰度值之和,即:

公式中,I (x `,y `)表示原始图像中点(I `,j `)的灰度值,ii(x,y)可以通过以下两个公式迭代计算:

公式中,S(x,y)表示列的积分,S(i,-1)=0,ii(-1,j)=0。要找到积分图像,只需将原始图像的所有像素扫描一次。下面的代码是C语言的实现。

pout image[0][0]=p image[0][0];

for(int x=1,x nWidthI){ pout image[x][0]=pInImage[x-1][0]pInImage[x][0];

}

for(int y=1;y nHeighty){ int nSum=0;

for(int x=0;x nWidthx){ nSum=pInImage[x][y];

pout image[x][y]=p image[x][y-1]nSum;}

}

如图所示,在计算窗口W中像素的灰度和时,无论窗口W的大小如何,都可以利用积分图像的四个对应点(i1,j1)(i2,j2)(i3,j3)(i4,j4)的值来计算。也就是说,窗口w中像素的灰度与窗口的大小无关。窗口w中像素的灰度总和为

Sum(W)=ii(i4,j4) -ii(i2,j2) - ii(i3,j3) ii(i1,j1)

看看下面的截图,相信你能看懂。

矩形区域内像素的求和应该是简单的重复操作,整体上提高了效率。为什么这么说?假设一个画面有n个像素,计算n个位置的整数画面的加法运算总数是n-1次(注:it s不是第二次,充分利用递归的思想),将这些结果保存在原图对应的矩阵M中。当你需要计算图像一个矩形区域内所有像素的和时,就像查表一样,调出A、B、C、D四个点的积分值,简单加减(注意只需要三次)就可以得到结果。另一方面,如果naive是用来直接在原图的矩形区域求和的,那就想想吧。有多少种可能的矩形组合?而对于图像n,那它相当大,所以2 n

那天文数字,里面大部分矩形重叠。重叠是什么意思?计算总和时有重复性工作。事实上,我们可以有效地利用计算出的信息。这就是积分图法的内在思想:它实际上是先计算N个不重叠(技术上讲是不相交)的矩形区域的像素之和,充分利用这些值(已有值)计算未知值,有点类似于递归.这完全避免了重复的求和运算。

这样,可以执行两个操作:

(1)任意矩形区域的像素积分。从图像的积分图中可以方便快捷地计算出图像中任意矩形内所有像素的灰度积分。如下图2.3所示,点1的积分图像ii1的值为(其中Sum为和):

ii1=总和(A)

同样,点2、3、: 4的积分图像为:

ii2=Sum(A)Sum(B);ii3=Sum(A)Sum(C);ii4=Sum(A)Sum(B)Sum(C)Sum(D);

矩形D中所有像素的灰度积分可以从矩形端点的积分图像值获得:

Sum(D)=ii1 ii4-(ii2 ii3) (1)

(2)特征值的计算矩形特征的特征值是两个不同矩形区域的像素之和的差,任意矩形特征的特征值都可以用公式(1)计算。下面以图2.1中特征的原型A为例说明特征值的计算。

如图2.4所示,该特征原型的特征值定义为:

总和(A)-总和(B)

根据公式(1),Sum(A)=ii4 ii1-(ii2 ii3);sum(B)=ii6 ii3-(ii4 ii5);

所以这类特征原型的特征值是:

(ii4-ii3)-(ii2-ii1)(ii4-ii3)-(ii6-ii5)

另外,给定矩形的所有像素值的sum Sum(r)可以通过使用积分图来快速计算。假设r=(x,y,w,h),那么这个矩形内部所有元素的和等价于下面积分图中的公式:

Sum(r)=ii(x w,y h) ii(x-1,y-1)-ii(x w,y-1)-ii(x-1,y h)

可以看出,矩形特征特征值的计算只与该特征端点的积分图有关,与图像坐标值无关。对于同一类型的矩形特征,无论特征的大小和位置如何,计算特征值所用的时间都是常数,而且只是简单的加减运算。其他类型的特征值计算方法类似。

标签:卷积图像积分


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 宾得k1拍视频(宾得K1的续航究竟是多少张)

下一篇: 红米k30至尊纪念版重量(红米k30s至尊纪念版重量)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号