返回

直方图匹配与模板匹配

Histogram Matching & Template Matching - 基于模板匹配的目标定位
第三章 / 特征明显方法
参数面板

调整模板大小和当前控制对象,观察窗口移动时响应图、直方图和公式代入如何同步变化。

24
点击源图会移动当前控制对象;方向键每次移动 1 个像素。当前窗口范围:x 0-104,y 0-104
窗口定位辅助操作
用方向键或下方 4 个按钮移动当前窗口;也可以直接点击原图或结果图跳转。
当前像素 (72, 34)3643 / 11025
方向
概念说明

匹配方法比较什么

模板匹配通过滑动窗口寻找局部结构最相似的位置。图源:scikit-image template matching 示例
任务

当要在一张大图里找出和目标相似的区域时,会遇到两种不同情况:有些目标只要颜色或灰度分布一致就能定位,有些目标则需要局部像素排列都对应。选错线索,匹配结果会要么漏掉目标、要么带回大量误检。

思路

常用的处理办法分两类:模板匹配把目标窗口当作模板,在大图上逐位置滑动,用 SSD 或 SAD 比较像素差异;直方图匹配则统计目标区域和候选区域的灰度分布,用相关、卡方或巴氏距离判断分布是否接近;反向投影还可以把目标分布映射成每个像素属于目标的可能性图,再用后续约束筛选。

观察

切换“模板匹配”和“直方图匹配”两个模式,拖动源图上的红框和蓝框,对比响应热力图与直方图分数:模板匹配对像素位置敏感,热力图峰值通常对应唯一位置;直方图匹配只认分布,相似区域可能给出多个高分候选。

方向键移动当前控制对象 / 点击源图移动选中窗口当前结果像素 (72, 34)
3643 / 11025
源图与滑动窗口
红框是目标模板 T,蓝框是当前搜索窗口 Sxy;公式只比较这两个窗口。
128×128
模板 T
当前 Sxy
模板 T
(42, 34) / 24×24
当前窗口 Sxy
(72, 34)
响应热力图
红点表示当前窗口响应位置;绿框只在热力图中辅助标出非自身最佳响应。
105×105
当前窗口分数
14.5753
热力图最优参考
8.1538
参考坐标
(57, 29)
当前与参考差距
6.4215
模板窗口

模板来自 (42, 34),大小 24×24。

实时计算

公式只比较模板 T 与当前窗口 Sxy,当前分数 14.5753。

判定结果

最佳分数和坐标只作为响应图辅助参考,不作为第三个参与计算的窗口。

当前公式代入

SSD 平方差匹配
SSD(72,34) =u,v[T-S]2 (0.399-0.466)2+(0.408-0.472)2+(0.408-0.484)2+(0.416-0.489)2+ =14.5753
当前公式只代入模板 T 与当前窗口 Sxy:当前窗口 (72, 34) 的分数为 14.5753。公式中像素值已按 [0,1] 归一化展示,与算法内部口径一致;SSD 越小表示当前窗口越接近模板;热力图最优参考分数为 8.1538。

概念对比

直方图匹配:比较灰度分布,忽略空间布局,适合颜色/灰度统计稳定的目标;可理解为的基础证据。

模板匹配:逐像素比较局部排列,/对形状和纹理位置敏感,旋转或尺度变化会明显影响结果。

教材补充

模板匹配滑动窗口原理
模板匹配滑动窗口原理
模板匹配过程示意
模板匹配过程示意
子图与模板比较
子图与模板比较
实验原图
实验原图
模板图像
模板图像
匹配结果
匹配结果
匹配过程图
匹配过程图
最终定位图
最终定位图