【图像识别】基于模板匹配实现手写数字识别matlab源码含GUI

153 阅读5分钟

基于几何特征的模板匹配通过计算模板图像与目标图像特征信息,来判断目标图像中是否有与模板图像相近或相同的图像。
模板匹配的大致流程:
首先,需要制作一个模板,并以模板图像以一定角度旋转,制作0°–360°各个方向的模板。模板图像 T 从目标图像的原点处开始每次移动一个像素,直到匹配分数达到要求找到目标物体。
在这里插入图片描述

基于边缘模板的创建:

我们首先从模板图像的边缘创建一个数据集或模板模型,该数据集或模板模型将用于目标图像中去搜索与模板图像相近或相同的图像。边缘检测的方法与canny边缘检测的方法类似。

1利用sobel算子寻找图像的梯度和方向

Sobel算子卷积因子如图所示
在这里插入图片描述
sobel算子在横向和纵向两个方向可以与图像作平面卷积。对于模板图像某点(x,y)可以得出两个方向的梯度向量Gx,Gy;

我们计算该像素点幅值梯度:
在这里插入图片描述

计算梯度方向:
在这里插入图片描述

2非最大值抑制原理提取边缘信息

sobel算子检测出来的边缘太粗了,我们需要抑制那些梯度不够大的像素点,只保留最大的梯度,从而达到瘦边的目的。这些梯度不够大的像素点很可能是某一条边缘的过渡点。按照高数的极大值的定义,即对点(x0,y0)的某个邻域内所有(x,y)都有f(x,y)≤(f(x0,y0),则称f在(x0,y0)具有一个极大值,极大值为f(x0,y0)。简单方案是判断一个像素点的8邻域与中心像素谁更大,但这很容易筛选出噪声,因此我们需要用梯度和梯度方向来辅助确定。
如下图所示,中心像素C的梯度方向是蓝色直线dTmp1,dTmp2是梯度直线上与邻域交点的值,那么只需比较中心点C与dTmp1和dTmp2的大小即可。由于这两个点的像素不知道,假设像素变化是连续的,就可以用g1、g2和g3、g4进行线性插值估计。设g1的幅值M(g1),g2的幅值M(g2),则M(dtmp1)=w*M(g2)+(1-w)*M(g1) ,其w=distance(dtmp1,g2)/distance(g1,g2) 。也就是利用g1和g2到dTmp1的距离作为权重,来估计dTmp1的值。经过非最大值抑制可以滤除大部分非边缘点。
在这里插入图片描述

3用双阈值算法检测和连接边缘

经过非极大值抑制之后的边缘点中,梯度值超过T1的称为强边缘,梯度值小于T1大于T2的称为弱边缘,梯度小于T2的不是边缘。可以肯定的是,强边缘必然是边缘点,因此必须将T1设置的足够高,以要求像素点的梯度值足够大(变化足够剧烈),而弱边缘可能是边缘,也可能是噪声,如何判断呢?当弱边缘的周围8邻域有强边缘点存在时,就将该弱边缘点变成强边缘点,以此来实现对强边缘的补充。
在这里插入图片描述
由此我们找到了模板图像边缘点的梯度信息Gx,Gy,θ,和位置信息(x,y)在与原图像匹配之前我们的模板数据集用如下方法表示:
其中pi为相对于模板重心的相对坐标。pi=(Xi,Yi)T,i=1,2,3,4…n构成,对应于每个点有一个梯度方向向量di=(ti,ui)T

模板匹配:

1计算被搜索图像

计算被搜索图像(目标图像)边缘点梯度信息,边缘点梯度信息与位置信息的计算同模板制作的过程。

2金字塔下采样

金字塔下采样后,需得到多级金字塔图像的边缘点梯度信息,边缘点梯度信息与位置信息的计算同模板制作的过程。其中金字塔用来对算法进行加速。

3匹配过程:

先在顶层金字塔进行快速搜索匹配得到一个匹配位置,然后在下一层金字塔进行匹配时候就能在该区域的ROI内进行搜索,以此类推,直到最底层。通过金字塔可以大大加快匹配速度。
搜索目标图像之前,我们设被搜索图像(目标图像)点集(xi,yi)T, i=1,2,3,4…n,对应的每个点的方向向量为e(x,y)=(vx,y,wx,y)T
由图像金字塔算法得到被搜索图像底层的ROI区域后,模板图像以重心点为原点在ROI区域进行遍历搜索。
搜索过程按如下公式进行:
在这里插入图片描述
(上式di’相当于上文提到的di=模板的方向向量,pi’相当于上文提到的pi’=模板的边缘点)
计算的是模板与子图像对应边缘点的梯度向量点积平均值。当一对对应边缘点梯度方向相同是,点积取得最大值,梯度方向正交时,点积为零,梯度方向相反时,点积取得负的最大值。计算得到的相似度量值不方便用于判断子图像是否为符合要求的结果,即很难确定一个阈值来筛选所需要的结果。因而对上式进行归一化处理:
在这里插入图片描述
(上式di’相当于上文提到的di=模板的方向向量,pi’相当于上文提到的pi’=模板的边缘点)
上式描述的是,转换后的模板与被搜索图像点(x, y)处子图像所有对应点的方向向量点积和的归一化。由于对方向向量进行了归一化处理,相似度量对任意光照变化具有不变性,不管是模板、还是搜索图像中有噪声,由于噪声导致的方向向量是随机的,平均起来对以上求和公式没有贡献值,因而具有很好的抗干扰性。上式的取值范围为[−1, 1],返回值为1时,表示模板和搜索子图像与完全匹配。