当前位置: 首页 > 面试题库 >

与OpenCV模板匹配的Max Min值范围是多少?需要用作阈值/ C ++ / Java

孙辰阳
2023-03-14
问题内容

我正在使用模板匹配创建一个简单的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只是最小和最大匹配分数,如链接所示。

该结构MinMaxLocResult也具有minLocmaxLoc它们类型的属性Point,使匹配的位置。鉴于您使用TM_SQDIFFTM_SQDIFF_NORMED作为匹配条件,最佳匹配位置将为mmr.minLoc

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



 类似资料:
  • 主要内容:简单阈值,其他类型的简单阈值阈值分割是一种图像分割方法,通常用于创建二值图像。 阈值分为简单阈值和自适应阈值两种类型。 简单阈值 在简单的阈值操作中,其值大于指定阈值的像素被赋予标准值。 可以使用类的方法对图像执行简单的阈值操作,以下是此方法的语法。 该方法接受以下参数 - src - 表示源(输入)图像的类的对象。 dst - 表示目标(输出)图像的类的对象。 thresh - 表示阈值的双重类型的变量。 maxval -

  • 我有以下输入: 我的XSL: 目标是对于每个具有query结果/记录的“query1”,我从该query结果/记录/列[@name='id_contact']中获取值,并从“query2”中删除每个在query2/query结果/记录/列[@name='id_contact']中具有该值的记录。这部分可以工作,但下一部分不能正常工作:然后,在删除query2中的值后,获取剩余的query2/id_

  • 我正在使用MVP架构,我需要为不同的活动注入不同的演示者。为此,我创建了@ActivityScope。这是否意味着我必须为每个活动创建一个单独的模块/组件? 如果我仍然负责创建和释放那些依赖项,那么自定义范围注释的目的是什么?不确定我是否正确,但我可以在所有模块/组件中使用@scope123,这不会有任何区别。

  • 问题内容: 我正在尝试基本上在Java上进行模板匹配。我使用简单的算法来找到匹配项。这是代码: 但这是非常缓慢的方法。我测试了2张图像(768×1280)和子图像(384 x 640)。这持续了很长时间。openCV是否可以使用现成的函数cvMatchTemplate()快速执行模板匹配? 问题答案: 您会发现openCV cvMatchTemplate()比您已实现的方法快得多。您创建的是一种统

  • 主要内容:其他类型的自适应阈值在简单的阈值处理中,阈值是全局的,即对于图像中的所有像素是相同的。 自适应阈值法是针对较小区域计算阈值的方法,因此对于不同区域将存在不同的阈值。 在OpenCV中,可以使用类的方法对图像执行自适应阈值操作。 以下是此方法的语法。 该方法接受以下参数 - src - 表示源(输入)图像的类的对象。 dst - 表示目标(输出)图像的类的对象。 thresh - 表示阈值的双重类型的变量。 maxva

  • 请尝试在java中创建一个新的应用程序来匹配图片和视频,图片中模板的匹配工作正常,但当我尝试为视频执行此操作时,总是会出现以下错误消息: OpenCV错误:断言失败((深度==CV_8U||深度==CV_32F) 这是我的视频图片匹配功能,有人可以帮忙。