zoukankan      html  css  js  c++  java
  • 卷积核的工作原理

      卷积是图像处理中一个操作,是kernel在图像的每个像素上的操作。Kernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor point)。把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值称为卷积处理。数学表达如下:

    $${ m{H}}left( {x,y} ight) = sumlimits_{i = 0}^{{M_i} - 1} {sumlimits_{j = 0}^{{M_j} - 1} {Ileft( {x + i - {a_i},y + j - {a_j}} ight)Kleft( {i,j} ight)} }$$

       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个像素的边缘没有被处理。

  • 相关阅读:
    FrameBuffer系列 之 一点资源
    FrameBuffer系列 之 显示图片
    FrameBuffer系列 之 相关结构与结构体
    FrameBuffer系列 之 介绍
    FrameBuffer系列 之 简单编程
    程序员五大层次,你属于哪一层?
    提高编程效率的14件事
    GTK简单了解记录
    __read_mostly变量含义
    [系统启动]Printk与sched_clock_init的一点分析
  • 原文地址:https://www.cnblogs.com/fuzhuoxin/p/12123709.html
Copyright © 2011-2022 走看看