卷积基本原理
索引地址:系列索引
卷积
图像卷积
卷积,有时也叫算子。用一个模板去和另一个图片对比,进行卷积运算。目的是使目标与目标之间的差距变得更大。卷积在数字图像处理中最常见的应用为锐化和边缘提取。
如边缘提取,假如目标像素点和它周边的值(上下左右前后的临点,具体的比邻范围依赖于算子的大小,3 * 3的算子比邻范围为1,5 * 5的为2,以此类推)得有较大差异,那么就可以通过这个算子对原图矩阵中的这个位置进行卷积运算,得出的值和该像素点原来的灰度值会产生显著的差异。当这种前后差异超过我们预设的范围后,就将这个像素点标记为0(白色),其余点标记为255(黑色),这样就得到了一黑色为背景,白色线条作为边缘或形状的边缘提取效果图。
锐化算子:通过卷积运算,可以增大矩阵每一个元素与周边元素的方差,轻则起到锐化作用,重则成了边缘提取。反之,则是去噪过程。这种矩阵运算 可以在空间域上,图像经过量化其实就是以矩阵的形式存在的。
运算
假设卷积核h为:
1 | 2 | 1 |
0 | 0 | 0 |
-1 | -2 | -1 |
待处理矩阵x为:
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 |
求x * h
将卷积核旋转180°,即:
-1 | -2 | -1 |
0 | 0 | 0 |
1 | 2 | 1 |
将卷积核h的中心对准x的第一个元素,然后h和x重叠的元素相乘,h中不与x重叠的地方x用0代替(是为了产生同样大小的卷积和的特征图),再将相乘后h对应的元素相加,得到结果矩阵中Y的第一个元素。如:
-1*0 | -2*0 | -1*0 | ||
0*0 | 0*1 | 0*2 | 3 | 4 |
1*0 | 2*5 | 1*6 | 7 | 8 |
9 | 10 | 11 | 12 | |
13 | 14 | 15 | 16 |
所以结果矩阵中的第一个元素Y11 = -1 * 0 + -2 * 0 + -1 * 0 + 0 * 0 + 0 * 1 + 0 * 2 + 1 * 0 + 2 * 5 + 1 * 6 = 16
x中的每一个元素都用这样的方法来计算,得到的卷积结果矩阵为:
16 | 24 | 28 | 23 |
24 | 32 | 32 | 24 |
24 | 32 | 32 | 24 |
-28 | -40 | -44 | -35 |
卷积基本原理
https://blog.jackeylea.com/opencv/introduction-of-convolution/