使用Python在OpenCV中进行模板匹配

2 投票
1 回答
5545 浏览
提问于 2025-04-17 03:21

我正在使用带有Python接口的OpenCV库。我想用模板匹配功能,但它的表现并不是我想要的。如果我提供的模板在图像中没有匹配的部分,我希望它不要返回匹配结果。但似乎无论我提供的图像中是否真的存在这个模板,它总是会返回一个匹配结果。

我查阅了OpenCV的Python文档,但似乎没有找到关于如何设置模板匹配的最小阈值的说明。我希望在比较模板和图像时能相对严格一些。

image = LoadImage("c:/image.png")

template = LoadImage("c:/image-crop2.png")

W,H = GetSize(image)

w,h = GetSize(template)

width = W - w + 1

height = H - h + 1

result = CreateImage((width, height), 32, 1)

MatchTemplate(image, template, result, CV_TM_CCORR)

(min_x, max_y, minloc, maxloc) = MinMaxLoc(result)

(x, y) = minloc

print result

1 个回答

2

看看这个回答:OpenCV. 在匹配时绘制矩形

你遇到的问题和这个完全一样 - MatchTemplate 返回的是一种相似度图,而不是单一的匹配位置。

撰写回答