zoukankan      html  css  js  c++  java
  • Halcon模板匹配

    使用find_scaled_shape_models来做模板匹配,发现网上竟然一点都找不到关于这个算子的文章,只有少数的find_scaled_shape_model相关的,
    但是我想同时做多个模板匹配,不想一个个来。

    接昨天的那个问题,就是配置可接受的最小分数值,这个分数值明明远远低于实际得分,但是就是匹配不上的问题。
    后来经过多此测试及重新阅读官方文档发现,多个模板,如果可接受最低分数都是相同的,那么确实可以只写一个值,问题到底在哪里呢?

    今天测试发现阈值调整为0.4之后,有不该被匹配上的部分匹配上了,这是非常糟糕的,这部分的得分为4.6左右,一般来说,真正能够匹配上的得分通常在0.8以上。
    为了解决这个问题,我决定把阈值重新调整为0.5,不出所料,这一块确实匹配不上了,另几处应该匹配的也匹配不上了,简直是。。。

    问题发现过程:
    找到了唯一一个halcon提供的包含该算子的例程,发现里面用的分数只有一个,没有用数组,排除这个原因;
    Maxoverlap和我设置的不相同,这个参数的涵义是可搜索到的模板实例之间最大的重叠,设置为相同值之后,没有效果;
    使用halcon hdevelop中的Matching助手,测试相同的图片和模板,阈值调整为0.5,能够匹配到,这就很奇怪了,助手使用的是find_scaled_shape_model,难道是这两个算子本身其实是不相同的?
    为了找到问题,插入代码,一个个参数对比。
    最终发现是贪心算法的那个参数可能不恰当。这个参数在0-1之间,越小搜索的越仔细,耗时越久;越大搜索的越不仔细,耗时越短。之前是配置成了0.9,
    这是一个官方推荐值,文档上说一般来说得分在0.9以上的,配置成0.9的贪心算法,基本上都能找出来。真是个坑,我有个图得分就有0.92,但是就是没有找出来。
    而且官方那个例程上用的都是0.8。
    后来通过一点点调小测试,最终确定为0.5,因为对耗时没有那么高的要求,暂定先用这个值,配上0.5的可接受的最低分数,测试一段时间看看效果。

    估计这个东西很少人用,我为什么那么看中它呢....

  • 相关阅读:
    第一章 快速入门
    增量式PID控制算法
    第二章 变量和基本类型
    位置式PID和增量式PID区别?
    I2C
    Linux系统进程调用列表
    Linux下I/O模型
    Linux下多路复用接口
    新浪博客网页编辑器PHP版带有上传图片功能
    晕死!博客园把我搞晕了!
  • 原文地址:https://www.cnblogs.com/yutou2016/p/11389749.html
Copyright © 2011-2022 走看看