gpt4 book ai didi

java - OpenCV 模板匹配 Max Min 取值范围是多少?需要作为theshold/c++/java

转载 作者:可可西里 更新时间:2023-11-01 18:20:16 33 4
gpt4 key购买 nike

我正在使用模板匹配创建一个简单的 openCV 应用程序,我需要比较在大图像中找到小图像并将结果返回为 true(如果找到匹配项)或 false(未找到匹配项)。

    Imgproc.matchTemplate(largeImage, smallImage, result, matchMethod);
Core.normalize(result, result, 0, 1, Core.NORM_MINMAX, -1, new Mat());

MinMaxLocResult mmr = Core.minMaxLoc(result);

double minMaxValue = 1;
if (matchMethod== Imgproc.TM_SQDIFF || matchMethod== Imgproc.TM_SQDIFF_NORMED)
{
minMaxValue = mmr.minVal;
useMinThreshold = true;
}
else
{
minMaxValue = mmr.maxVal;
}

现在的问题是使用这个 minMaxValue 做出决定(真/假)。我知道上述两种方法 TM_SQDIFF 和 TM_SQDIFF_NORMED 返回低值,而其他方法返回高值,因此我可以有 2 个不同的阈值并比较其中一个阈值(取决于模板方法类型)。

因此,如果有人可以解释 MinMaxLocResult 返回的 minVal 和 maxVal 范围是什么,那就太好了。

是0到1的范围吗?

如果是,对于 Max 类型模板方法值 1 是完美匹配?

最佳答案

MinMaxLocResult 不返回 minValmaxVal 范围。 minValmaxVal 只是最小和最大匹配分数,如 link 中所示.

结构 MinMaxLocResult 也有 minLocmaxLoc 类型的属性 Point,给出匹配的位置.鉴于您使用 TM_SQDIFFTM_SQDIFF_NORMED 作为匹配标准,最佳匹配位置将是 mmr.minLoc

为了设置检测阈值,您可以声明一个变量double thresholdMatch 并实验性地设置它的值。如果 minVal < thresholdMatch 则可以说检测到目标对象

关于java - OpenCV 模板匹配 Max Min 取值范围是多少?需要作为theshold/c++/java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17784800/

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