gpt4 book ai didi

python - 如何在模板匹配中使用 cv2.minMaxLoc()

转载 作者:行者123 更新时间:2023-12-01 08:46:18 32 4
gpt4 key购买 nike

这是我用于模板匹配的代码,min_val、max_val、min_loc、max_loc 是什么意思?它们有什么用?

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('C:\\machineLearning\\positive\\1.jpg', 0)
img2 = img.copy()
template = cv2.imread('C:\\machineLearning\\positive\\1_.jpg', 0)
w, h = template.shape[::-1]

img = img2.copy()
method = eval('cv2.TM_SQDIFF')

res = cv2.matchTemplate(img,template,method)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)

top_left = min_loc
bottom_right = (top_left[0] + w, top_left[1] + h)

cv2.rectangle(img,top_left, bottom_right, 255, 2)

plt.subplot(121),plt.imshow(res,cmap = 'gray')
plt.title('Matching Result'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(img,cmap = 'gray')
plt.title('Detected Point'), plt.xticks([]), plt.yticks([])
plt.suptitle('cv2.TM_SQDIFF')

plt.show()

最佳答案

如果您通过cv2.matchTemplate() docs ,该函数返回一个模糊单 channel 矩阵,其中包含模板和输入图像片段的匹配分数。对于cv2.TM_CCOEFF方法,得分最高的点将是最亮的,但对于cv2.TM_SQDIFF_NORMED方法,得分最高的点将是最暗的

cv2.TM_CCOEFF 结果:

cv2.TM_CCOEFF

cv2.TM_SQDIFF_NORMED 结果:

enter image description here

因此,根据可用的各种方法,您有时可能需要获取输出矩阵中的最亮点或最暗点。 cv2.minMaxLoc()只是这两个通用操作的统一,当你使用minMaxLoc时,你可以忽略min属性来使用案例。

关于python - 如何在模板匹配中使用 cv2.minMaxLoc(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53292170/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com