使用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的可接受的最低分數,測試一段時間看看效果。
估計這個東西很少人用,我為什么那么看中它呢....