简介
算法的原理,可以参考这个篇博客:基于灰度的模板匹配算法。这里不再赘述,本文使用序贯相似性检测算法(下面简称:SSDA),实现对图像模板的匹配
算法思路
参考博客,可以整理出SSDA算法的整体思路:
确定子图的左上角坐标范围
遍历所有可能的子图
求模板图和子图的图像均值
随机取不重复的点,求模板图和子图中该点的值与其自身图像均值的绝对误差
累加绝对误差,直到超过阈值
计算累加次数,则次数最多的子图为匹配的最终图像
代码
根据算法思路,demo如下:
import time
import random
import cv2
import numpy as np
def Image_Mean_Value(Image):
res = np.sum((Image.astype("float"))) / float(Image.shape[0] * Image.shape[1])
return res
def Image_SSDA(search_img, example_img):
# 确定子图的范围
M = search_img.shape[0]
m = example_img.shape[0]
N = search_img.shape[1]
n = example_img.shape[1]
Range_x = M - m - 1
Range_y = N - n - 1
search_im