MATLAB中的卷积形状
卷积是一种数学运算。它被用于MatLab中的图像处理。掩码/过滤器用于卷积图像,以实现图像检测的目的。但是MatLab提供了三种类型的卷积。这里我们将解释一下简单的卷积。
滤波器在图像矩阵上从左到右滑动。矩阵和滤波器的相应数值被相乘并加在一起。滤波器中心值下的矩阵值被卷积操作的结果所取代。
根据在矩阵上滑动的滤波器的性质,MatLab有三种不同类型的卷积。
示例 1:
相同的卷积
现在我们看到的是相同的卷积。所以在这种卷积中,结果矩阵的大小与输入矩阵的大小相同。滤波器/掩码的中心被放在第一行的第一个元素上。然后,滤波器从左到右在矩阵上滑动。一旦某一行被覆盖,滤波器就会向下滑动到下一行,并从左边移到右边。当过滤器挂在矩阵外时,矩阵被填充了0。
注意: 输出矩阵的大小=输入矩阵的大小。
例1:平均卷积
例2:正常卷积
让我们以Same卷积为例,在其上应用蒙版。
示例:
输出 1:
输出 2:
有效的卷积
在这种类型的卷积中,结果矩阵的大小减少。滤波器/掩膜被放置在矩阵上,使滤波器的任何部分都不挂在外面。滤波器完全悬浮在矩阵上,然后在行中从左到右滑动,在列中从上到下滑动。
示例:
示例:
输出 1:
输出 2:
全卷积
在这种类型的卷积中。
- 滤波器的第一个右底将悬停在矩阵的左上角元素。它们的乘积将被计算出来。其余的过滤器元素将被乘以0,因为矩阵默认情况下是用0来填充的。如果我们使用的是平均过滤器,那么将计算出乘积的平均值。
- 滤波器的底行将在矩阵上从左到右方向滑动。第一行的最后一个操作将在过滤器底行的最左边的元素悬停在矩阵第一行的最右边的元素时被计算。
- 因此,在滑动第1行后,过滤器将下降一个台阶,并再次重复相同的步骤。
- 滤波器将滑动,直到其第一行(顶部)悬停在矩阵的最后一行(底部)。然后将从左到右滑动,直到过滤器的最左边的元素悬停在矩阵的最后一行的最右边的元素上。
示例 1:
示例 2:
示例:
输出 1:
输出 2: