我们在阅读图像处理的相关文献和文章时,经常会遇到“窗口、核算子、模板、结构、卷积核、高斯核、锚点”等名词,对于初学者来说不把这些名词搞清,那基本就无法入门图像处理技术,所以有必要写篇博文对这些名词作下说明和解释。
我们在作图像处理的运算时,经常会用下面这样的规则去根据原图像A计算得到一个新的目标图像B:
假设现在我们要计算目标图像B中坐标为(x,y)的点的值,我们按下面这样的规则做:
第一步:将一个小尺寸的矩阵K的某个点(这个点称为叫“锚点”)对准图像A中坐标为(x,y)值的点,同时K中的其它各点也会相应地对准A中在(x,y)附近的点。
第二步:将K中的各值与A中被覆盖到的点按一定的规则做运算得到结果,这个结果便是目标图像B中坐标为(x,y)的点的值。
重复上面的两步,直到A中所有点被遍历,这样就得到了目标图像B。
上面这段话中的二维矩阵K就是我们说的“窗口”,也叫“核算子、模板、结构”。 英文名称有“window”、“kernel”、"aperture"等。
上段这段话读起来有点拗口,给个示意图吧,示意图如下:
上面示意图中左边蓝色的矩阵就是上面所说的A矩阵,橙色的小矩阵就是上面所说的K矩阵,右边红色的矩阵就是上面所说的B矩阵。
橙色小矩阵K就是所谓的“窗口”,也叫“核算子、模板、结构”。
如果小矩阵K与原图像中的元素作的是卷积运算,那么我们可称K为卷积核。
如果小矩阵K是由高斯分布生成的,我们可称其为“高斯核”。
锚点的概念在上面的叙述中已经提到,在上面的叙述中我把“锚点”二字高亮标红了的。
注意:小矩阵K通常是奇数阶矩阵,一用的是3阶矩阵。之所以要取奇数,是因为锚点我们通常取的是中心点,偶数阶的话是取不到中心点的。
另外,作窗口运算时,常常需要扩展图像边界,关于扩展图像边界的常用方法,见我的下面这篇博文:
https://www.hhai.cc/thread-178-1-1.html