如何在 opencv 中获取匹配模板的位置?
How do I get location of matched template in opencv?
目前我有这个代码。
import cv2 as cv
import numpy as np
import pyautogui as pg
def grabscreen():
i = pg.screenshot()
return cv.cvtColor(np.array(i), cv.COLOR_RGB2BGR)
img_rgb = grabscreen()
img_gray = cv.cvtColor(img_rgb, cv.COLOR_BGR2GRAY)
template = cv.imread('capture.png',0)
w, h = template.shape[::-1]
res = cv.matchTemplate(img_gray,template,cv.TM_CCOEFF_NORMED)
threshold = 0.8
loc = np.where( res >= threshold)
它会在您的屏幕上找到一个模板。
到底是什么方法,函数,我会用什么来获取找到模板的 xy?
(找到它的中心,就像 pyautogui 那样)
使用 minMaxLoc 函数查找给定数组中的最大值和最小值(以及它们的位置)。
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
目前我有这个代码。
import cv2 as cv
import numpy as np
import pyautogui as pg
def grabscreen():
i = pg.screenshot()
return cv.cvtColor(np.array(i), cv.COLOR_RGB2BGR)
img_rgb = grabscreen()
img_gray = cv.cvtColor(img_rgb, cv.COLOR_BGR2GRAY)
template = cv.imread('capture.png',0)
w, h = template.shape[::-1]
res = cv.matchTemplate(img_gray,template,cv.TM_CCOEFF_NORMED)
threshold = 0.8
loc = np.where( res >= threshold)
它会在您的屏幕上找到一个模板。 到底是什么方法,函数,我会用什么来获取找到模板的 xy? (找到它的中心,就像 pyautogui 那样)
使用 minMaxLoc 函数查找给定数组中的最大值和最小值(以及它们的位置)。
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)