python使用cv2获取截图中的匹配项目的中心位置

在OpenCV中,cv2.matchTemplate()函数用于在大图中查找与小图(模板)匹配的区域,但并不会直接返回一个区域的box。

想要获取匹配区域的边界框(box),以及中心的位置,这样后续好进行自动化操作,。以下是一种方法:

首先,使用cv2.matchTemplate()函数找到匹配的区域。
然后,使用cv2.minMaxLoc()函数获取匹配区域的最大值和最小值。
通过最大值和最小值,可以计算出匹配区域的边界框。

依据最大值+图片的大小,得到中心的位置,
下面是一个示例代码:

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,opencv,开发语言)