图像平滑之二维离散卷积

学习资料参考:

张平.《OpenCV算法精解:基于Python与C++》.[Z].北京.电子工业出版社.2017.


基础概念

二维离散卷积是在两个矩阵的基础上的一种计算方式,如下所示:
I = ( 1 2 3 4 ) I=\begin{pmatrix} 1 & 2 \\ 3 & 4 \\ \end{pmatrix} I=(1324), K = ( − 1 − 2 2 1 ) K=\begin{pmatrix} -1 & -2 \\ 2 & 1 \\ \end{pmatrix} K=(1221).

计算方式为:

  1. K K K进行逆时针旋转 18 0 o 180^o 180o,则 K = ( 1 2 − 2 − 1 ) K=\begin{pmatrix} 1 & 2 \\ -2 & -1 \\ \end{pmatrix} K=(1221).
  2. 将矩阵 K K K沿着 I I I按照先行后列的顺序移动,每移动一个位置,就进行对应位相乘求和。演示过程如下所示:
    在这里插入图片描述
    得到矩阵 C = ( − 1 − 4 − 4 − 1 − 5 − 6 6 11 4 ) C = \begin{pmatrix} -1 &-4 & -4 \\ -1 & -5 & -6 \\ 6 & 11 & 4\end{pmatrix} C=1164511464,矩阵 C C C的高与宽满足:
    矩阵C的高 = 矩阵I的高 + 矩阵K的高 - 1; 矩阵C的宽 = 矩阵I的宽 + 矩阵K的宽 - 1;
    而矩阵 K K K就称为卷积核,或者卷积算子。

卷积种类

  1. full卷积
    在这里插入图片描述
    full卷积形式橙色部分为卷积算子。
    边界扩充方式:
  • 在红色矩阵边界外填充常数,通常进行的是0扩充。
  • 重复红色矩阵边界处的行和列,对输入矩阵进行扩充。
  • 以矩阵边界为中心,令矩阵外某位置上未定义的灰度值等于图像内其镜像位置的灰度值,该种方式会产生最小的影响。
  1. same卷积
    在这里插入图片描述

same卷积形式橙色部分为卷积算子,相比较于ful形式重合部分更多,即卷积算子的中心处于红色部分中时开始计算,在合适的步长情况可保证输入与输出图像大小一致。很明显same卷积是full卷积的子集。
3. valid卷积
在这里插入图片描述
卷积算子只存在于原图中。

猜你喜欢

转载自blog.csdn.net/qq_44116998/article/details/124062856