gpt4 book ai didi

opencv - Color 上的模板匹配行为

转载 作者:太空宇宙 更新时间:2023-11-03 21:41:28 25 4
gpt4 key购买 nike

我正在评估模板匹配算法以区分相似和不同的对象。我发现的是令人困惑的,我对模板匹配的印象是一种比较原始像素强度值的方法。因此,当像素值发生变化时,我预计模板匹配会给出较低的匹配百分比。

我有一个模板和搜索图像,其形状和大小都相同,只是颜色不同(附图片)。令人惊讶的是,当我进行模板匹配时,我得到的匹配百分比大于 90%。

img = cv2.imread('./images/searchtest.png', cv2.IMREAD_COLOR)
template = cv2.imread('./images/template.png', cv2.IMREAD_COLOR)
res = cv2.matchTemplate(img, template, cv2.TM_CCORR_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
print(max_val)

模板图像:Template Image

搜索图片:Search Image

有人可以告诉我为什么会这样吗?我什至在 HSV 颜色空间、全 BGR 图像、全 HSV 图像、B、G、R 的各个 channel 和 H、S、V 的各个 channel 中尝试过这个。在所有情况下,我都得到了很好的百分比。

非常感谢任何帮助。

最佳答案

res = cv2.matchTemplate(img, template, cv2.TM_CCORR_NORMED)

有各种参数,您可以使用它们来查找模板,例如cv2.TM_CCOEFF, cv2.TM_CCOEFF_NORMED, cv2.TM_CCORR, cv2.TM_CCORR_NORMED, cv2.TM_SQDIFF cv2.TM_SQDIFF_NORMED

你可以在这里查看他们的等式:

https://docs.opencv.org/2.4/modules/imgproc/doc/object_detection.html

根据我的想法,如果您想使用模板匹配,使其不匹配不同颜色的形状,那么您应该使用 CV_TM_SQDIFF 或 cv2.TM_CCOEFF_NORMED。相关项给出最大值的匹配,平方差项给出最小值的匹配。因此,如果您具有精确的形状和大小,但颜色不同,您将获得高相关值(请参阅上面链接中的等式)。

关于opencv - Color 上的模板匹配行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50856020/

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