在OpenCV中,cv2.matchTemplate()函数用于在大图中查找与小图(模板)匹配的区域,但并不会直接返回一个区域的box。
想要获取匹配区域的边界框(box),以及中心的位置,这样后续好进行自动化操作,。以下是一种方法:
首先,使用cv2.matchTemplate()函数找到匹配的区域。
然后,使用cv2.minMaxLoc()函数获取匹配区域的最大值和最小值。
通过最大值和最小值,可以计算出匹配区域的边界框。文章来源:https://www.toymoban.com/news/detail-705070.html
依据最大值+图片的大小,得到中心的位置,
下面是一个示例代码:文章来源地址https://www.toymoban.com/news/detail-705070.html
import cv2
import numpy as np
# 加载图像和模板
image = cv2.imread('image.jpg')
template = cv2.imread('template.jpg')
# 使用matchTemplate()找到匹配的区域
result = cv2.matchTemplate(image, template, cv2.TM_CCORR_NORMED)
# 选择最大值的位置
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
# 计算边界框的左上角和中间坐标
top_left = max_loc#
center_position= (top_left[0] + int(template.shape[1]/2), top_left[1] + int(template.shape[0]/2))
# 打印坐标
print("Top-left:", top_left)
print("center_position:", center_position)
到了这里,关于python使用cv2获取截图中的匹配项目的中心位置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!