在添加条目之前检查相似坐标的列表

Check list for similar coordinates bevor adding entry

我正在使用 OpenCV 进行模板匹配。 匹配本身产生了所有模板,但是在找到所有模板之前,会在多个细微变化中找到最适合的模板。 模板应在选中的图像上出现 12 次。然而,x 位置 xloc 和 y 位置 yloc 的数组长度为 34。

locations = []
for (x,y) in zip (xloc,yloc) :
  same = False

  for (xn,yn) in locations :
    if x in range (xn, xn+w) : #w being the width of the template, around 40px
        if y in range (yn, yn+h) : # being the height
            same = True
    
  if not same :
     locations.append ([int(x), int(y)])

如您所见,我尝试为这些位置编写一个新列表,只添加与列表中存在的值不太相似的值。这将条目数减少到 15 个,但仍有 3 个重复项。 我突出显示了屏幕截图中的重复值。我想知道他们是如何设法通过的,即使他们应该在定义的范围内。 对于这个项目来说重要的是火柴的位置和数量。谁能解释一下如何删除剩余的 3 个重复项?

感谢您的评论。检查负数范围(-w 和 -h)解决了问题。

更改部分:

 if x in range (xn-w, xn+w) :
        if y in range (yn-h, yn+h) :