当前位置:文档之家› 关于卷积计算

关于卷积计算

这里说到的卷积计算,只是指我们对图像进行某种滤波处理或者是边缘检测、锐化等应用要用到的运算。

通常,要进行卷积的话就必须要有一个模板(掩模),这些模板的实际就是在卷积计算是所用到的点乘系数,下面会详细说明。

当然,以上说的只是一种理解,而不是卷积本身的概念。

下面举例说明一下卷积运算。

假设一图像(矩阵)为:
1 2 3
4 5 6
7 8 9
现在要对其进行锐化,采用用Roberts 算子和Sobel 算子,其中Roberts 算子
采用的计算模板为 ,根据其计算公式,以上述中的图(矩阵)的中间的点(5)为例,该点用Roberts 的模板计算过程如下: g(i,j) = |-5 + 9| + |-6 + 8| = 4 + 2 = 6,也就是说,5 这点通过卷积计算之后的值为6。

在计算的时候,只要把矩阵中的点与模板的点一一对应即可:
1 2 3
4 5 6
7 8 9
在要进行处理的点5中,对应模板上的位置,就得出5的系数是-1,6和8的系数是0,9的系数是1(针对x 模板而言,如果是针对y 模板,则5和9的系数是0,6的系数是-1,8的系数是1),然后求两模板运算结果的绝对值之和,参照Robert 算子的公式。

然后到Sobel 算子,它的模板比Roberts 的要复杂一些,但运算的方法是一样的。

采用上面所说的对应方法,根据dx 和dy ,可得1和7的系数是-1, 4的系
数是-2,6的系数是2,3和9的系数是1,其余为0(针对x 模板),Sobel 算子的Roberts 最大的一个不同就是,前者计算的当前位置是模板的中心位置,后者计算的当前位置是左上角,一般来说,模板采取都是m ×m (m 是奇数),所以大部分模板的计算当前位置都是模板的中心位置(我们接触到的模板就只有Robert 算子不是奇数×奇数的)。

至于模板,题目应该会给定,但上面所说到的这两个模板,大家最好还是记一记。

而在空间平滑滤波增强中,中值滤波和邻域平均,这两者与卷积的计算有相似之处,但卷积是不同的。

其中两者同样具有模板的概念,但中值滤波只是在模板覆盖的点里求中值,领域平均则是求平均值,具体参看书本60页到64页。

(,)|(1,1)(,)||(1,)(,1)|
g i j f i j f i j f i j f i j =++-++-+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=101202101x d ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=121000121y d
下面是点5进行卷积的结果
g(i,j) = |-1-2×4-7+3+2×6+9 | + |-1 + 7+2×8+9-2×2-3|
=9+24=33
利用上面说到的办法,把矩阵所有的点都进行一次卷积运算,然后得出新的矩阵便是题目的答案。

需要说明的一点就是,边缘的点,是不能直接利用模板运算的。

1 2 3 4 5 6
7 8 9
如上图,由于1所处的位置不足以形成一个九宫格,所以这进行计算之前,要先对原图像进行扩展,一般是采用加零法,扩展之后如下:
0 0 0 0 0
0 1 2 3 0
0 4 5 6 0
0 7 8 9 0
0 0 0 0 0
经过扩展之后,1这个点便可以进行计算了。

除了加零法,还可以使用复制法,就是说扩展的一圈上的点与边缘的点是一样的,如:
1 1
2
3 3
1 1
2
3 3
4 4
5
6 6
7 7 8 9 9
7 7 8 9 9
然而,在实际应用中,扩展图像会对图像边缘的滤波结果带来一定的不良影响,这种影响会随着模板(掩模)尺寸的增大而加大。

因此最好的一个方法还是使滤波模板中心距原图像边缘的距离不小于(n-1)/2个像素或点,这里的n 是指模板的尺寸,如3×3的模板,n 就是3。

在考试的时候,如果题目就此情况没有说明要求的话,建议问问老师。

还需要注意的一点就是,任何一点运算后的值只保留在最终结果中,而不是将这个运算结果替代原来的值。

例如,5经运算之后的值是33,但对6这点运算时,5这个点取值不是33,它依然取原来的值5。

也就是说,卷积运算结果与图像的点的遍历顺序无关。

⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=101202101x d。

相关主题