多语言展示
当前在线:243今日阅读:39今日分享:10

怎么快速地实现模版匹配?

在《怎么从已知图片里面找到目标图片?》里面介绍了一种模版匹配的算法,效率不算好。本文介绍另一种方法,来实现快速的模版匹配。下面的大图,是原图 i。小图是从大图里面截出的一部分,也就是待匹配的模版 j。1怎么从已知图片里面找到目标图片?
工具/原料
1

电脑

2

Mathematica

方法/步骤
1

分别把i和j栅格化、二值化。a = i // Rasterize // Binarize;b = j // Rasterize // Binarize;

2

用归一化平方欧式距离,来寻找a与b的内在联系:x = ImageCorrelate[a, b, NormalizedSquaredEuclideanDistance]

3

把图像x二值化,并反色处理:y = 1 - Binarize[x, 0.23]注意看里面有一个小白点。

4

对y进行膨胀处理:z = Dilation[y,   Table[1, ImageDimensions[b][[2]], ImageDimensions[b][[1]]]]膨胀后的白色区域,与b位于a的位置差不多。

5

在原图i里面,标注出j。HighlightImage[i, {Blue, z}]

注意事项

这个算法简单,而且运行速度较快。

推荐信息