Python 如何删除模板匹配(opencv)y轴上的变化

Python 如何删除模板匹配(opencv)y轴上的变化,python,python-3.x,opencv,computer-vision,Python,Python 3.x,Opencv,Computer Vision,使用下面的函数,每次返回的坐标都会略有不同,因为模板匹配在上下几个像素处发现相同的模板。增加阈值没有帮助,因为如果阈值更高,它将找不到任何东西。 我怎样才能使它在找到模板后始终返回相同的坐标,而y轴没有这么小的变化(我不关心x轴的精度) 在无限循环中运行的函数,如下所示: 编辑:这是带有坐标和模板的矩形图:。 此外,是否可以掩蔽模板图像,删除改变颜色的部分?如果每个图像只需要一个匹配区域,则使用cv2.minMaxLoc()函数在res上查找全局最大值。对于给定的图像和模板,这将是稳定的 要复

使用下面的函数,每次返回的坐标都会略有不同,因为模板匹配在上下几个像素处发现相同的模板。增加阈值没有帮助,因为如果阈值更高,它将找不到任何东西。
我怎样才能使它在找到模板后始终返回相同的坐标,而y轴没有这么小的变化(我不关心x轴的精度)

在无限循环中运行的函数,如下所示:


编辑:这是带有坐标和模板的矩形图:。
此外,是否可以掩蔽模板图像,删除改变颜色的部分?

如果每个图像只需要一个匹配区域,则使用
cv2.minMaxLoc()
函数在
res
上查找全局最大值。对于给定的图像和模板,这将是稳定的

要复制现有阈值,可以使用以下psuedocode:

~, maxVal, ~, maxLoc = cv2.minMaxLoc(res)
if (maxVal > thresh):
 rest_of_function()

你能提供一些样本图片吗?你能发布一个源图片和两个输出示例吗?@zdar添加了一个相册。你能检查一下吗?但是我可以使用
cv2.minMaxLoc()
和阈值吗?是的,请参阅我的编辑。函数返回矩阵中最大值的值(作为第二个返回参数)和位置(作为第四个)。您可以设定最大值高于阈值的条件。
~, maxVal, ~, maxLoc = cv2.minMaxLoc(res)
if (maxVal > thresh):
 rest_of_function()