卷积是图像处理中一个操作,是kernel在图像的每个像素上的操作。Kernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor point)。把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值称为卷积处理。数学表达如下:
$${rm{H}}left( {x,y} right) = sumlimits_{i = 0}^{{M_i} - 1} {sumlimits_{j = 0}^{{M_j} - 1} {Ileft( {x + i - {a_i},y + j - {a_j}} right)Kleft( {i,j} right)} }$$
Sum = 8x1+6x1+6x1+2x1+8x1+6x1+2x1+2x1+8x1。
中心锚点像素 = sum / (m*n)。
常用的算子包括
1.Sobel卷积核:
卷积效果如图所示:
2.Robert卷积核
卷积效果如图所示:
3.拉普拉斯算子
得到的是整个图像的差异,常用于边缘检测,获取轮廓。
卷积效果如下:
4.边缘处理
在卷积开始之前增加边缘像素,填充的像素值为0或者RGB黑色,比如3x3在四周各填充1个像素的边缘,这样就确保图像的边缘被处理,在卷积处理之后再去掉这些边缘。,图像卷积的时候边界像素,不能被卷积操作,原因在于边界像素没有完全跟卷积核重叠,所以当3x3卷积核滤波时候有1个像素的边缘没有被处理,5x5卷积核滤波的时候有2个像素的边缘没有被处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:卷积核的工作原理 - Python技术站