一、 什么是卷积?

      在图像处理中,卷积操作指的是使用一个卷积核对图像中的每个像素进行一系列操作。 
      卷积核(算子)是用来做图像处理时的矩阵,图像处理时也称为掩膜,是与原图像做运算的参数。卷积核通常是一个四方形的网格结构(例如3*3的矩阵或像素区域),该区域上每个方格都有一个权重值。 
      使用卷积进行计算时,需要将卷积核的中心放置在要计算的像素上,一次计算核中每个元素和其覆盖的图像像素值的乘积并求和,得到的结构就是该位置的新像素值。 
      以下两个算子中演示了具体的卷积计算过程。


二、 相关算子

定义:

深度学习卷积图visio画图 卷积和画图_卷积

 


深度学习卷积图visio画图 卷积和画图_opencv_02

,其中h称为相关核(Kernel). 

         

步骤:

  • 1)滑动核,使其中心位于输入图像g的(i,j)像素上
  • 2)利用上式求和,得到输出图像的(i,j)像素值
  • 3)充分上面操纵,直到求出输出图像的所有像素值

【例】 
  原始像素矩阵为: 



⎡⎣⎢⎢⎢⎢⎢⎢17234101124561218171319258142021215162239⎤⎦⎥⎥⎥⎥⎥⎥[17241815235714164613202210121921311182529]


  卷积模板h为: 



⎡⎣⎢834159672⎤⎦⎥[816357492]


计算输出图像的(2,4)元素=1*8+8*1+15*6+7*3+14*5+16*7+13*4+20*9+22*2=585 

如图所示: 

深度学习卷积图visio画图 卷积和画图_图像处理_03


三、 卷积算子

定义:

深度学习卷积图visio画图 卷积和画图_图像处理_04

 


深度学习卷积图visio画图 卷积和画图_opencv_05

步骤: 

- 1)将核围绕中心旋转180度 

- 2)滑动核,使其中心位于输入图像g的(i,j)像素上 

- 3)利用上式求和,得到输出图像的(i,j)像素值 

- 4)充分上面操纵,直到求出输出图像的所有像素值 

例:计算输出图像的(2,4)元素=1*2+8*9+15*4+7*7+14*5+16*3+13*6+20*1+22*8=575 

如图所示: 

深度学习卷积图visio画图 卷积和画图_卷积_06


四、 边缘效应

      当对图像边缘的进行滤波时,核的一部分会位于图像边缘外面。 

深度学习卷积图visio画图 卷积和画图_卷积核_07

 

常用的策略包括: 

- 1)使用常数填充:imfilter默认用0填充,这会造成处理后的图像边缘是黑色的。 

- 2)复制边缘像素:I3 = imfilter(I,h,’replicate’); 

深度学习卷积图visio画图 卷积和画图_卷积_08


五、 常用的卷积核及其用途

  • 1)低通滤波器(常用于计算模糊后的效果) ⎡⎣⎢1/91/91/91/91/91/91/91/91/9⎤⎦⎥[1/91/91/91/91/91/91/91/91/9]
    ⎡⎣⎢1/101/101/101/102/101/101/101/101/10⎤⎦⎥[1/101/101/101/102/101/101/101/101/10]
    ⎡⎣⎢1/162/161/162/164/162/161/162/161/16⎤⎦⎥[1/162/161/162/164/162/161/162/161/16]
  • 2)高斯滤波器(常用于计算高斯模糊后的效果) 
          高斯模糊的卷积核也是一个正方形的滤波核,其中每个元素通过以下公式计算得出: 
          G(x,y)=12πσ2⋅ex2+y22σ2G(x,y)=12πσ2·ex2+y22σ2 
          该公式中σ是标准方差(一般取值为1),x和y分别对应了当前位置到卷积核中心的整数距离。通过这个公式,就可以计算出高斯核中每个位置对应的值。为了保证滤波后的图像不会变暗,需要对高斯核中的权重进行归一化。
  • 3)边缘检测(常用于计算图像边缘或者说梯度值) 
    ⎡⎣⎢−10−1040−10−1⎤⎦⎥[−10−1040−10−1]