前三章讲解了opencv里的重要数据结构和一些常用方法。本章将开始介绍一些计算机图形学的算法,介绍数学的同时将结合opencv中已实现的函数方法,详解实际在图像中的应用。
首先介绍图像滤波,图像滤波主要分线性滤波和非线性滤波,不知大家参加过google的open image没有,里面最流行CNN(卷积神经网络)的卷积层其实就是图像学说的一种滤波方式。滤波的主要目的为抑制图片里面的噪音。什么是图片的噪音呢?比如说图片上的白点就是一个典型的噪音。下面将介绍一些基本知识。
- 卷积核
卷积核实际就是一个矩阵,当然可以为任意形状,但在实际应用中anchor的存在,我们一般取边长为奇数的正方形矩阵。把卷积核的anchor对准图像矩阵的第一个元素,图像矩阵对应区域和卷积核做点乘(注意不是叉乘),所得的结果替换掉图像矩阵的对应元素,再向右移动,周而复始,直到图像矩阵最后一个元素计算完成。这个步骤通常叫作卷积运算。
(图中虚线区域——因为在边缘附近的元素周围没有足够元素做卷积,所以要人为地扩大原矩阵,这个扩大的区域叫作padding)