halcon有三種模板匹配方法:即Component-Based、Gray-Value-Based、Shaped_based,分別是基於組件(或成分、元素)的匹配,基於灰度值的匹配和基於形狀的匹配,此外還有變形匹配和三維模型匹配也是分屬於前面的大類
本文只對形狀匹配做簡要說明和補充:
Shape_Based匹配方法:
上圖介紹的是形狀匹配做法的一般流程及模板制作的兩種方法。
先要補充點知識:形狀匹配常見的有四種情況 一般形狀匹配模板shape_model、線性變形匹配模板planar_deformable_model、局部可變形模板local_deformable_model、和比例縮放模板Scale_model
第一種是不支持投影變形的模板匹配,但是速度是最高的,第二種和第四種是支持投影變形的匹配,第三種則是支持局部變形的匹配。
一般形狀匹配模板是最常用的,模板的形狀和大小一經制作完畢便不再改變,在查找模板的過程中,只會改變模板的方向和位置等來匹配目標圖像中的圖像。這個方法查找速度很快,但是當目標圖像中與模板對應的圖像存在比例放大縮小或是投影變形如傾斜等,均會影響查找結果。涉及到的算子通常為create_shape_model 和find_shape_model
線性變形匹配模板planar_deformable_model是指模板在行列方向上可以進行適當的縮放。行列方向上可以分別獨立的進行一個適當的縮放變形來匹配。主要參數有行列方向查找縮放比例、圖像金字塔、行列方向匹配分數(指可接受的匹配分數,大於這個值就接受,小於它就舍棄)、設置超找的角度、已經超找結果后得到的位置和匹配分數
線性變形匹配又分為兩種:帶標定的可變形模板匹配和不帶標定的可變形模板匹配。涉及到的算子有:
不帶標定的模板:創建和查找模板算子create_planar_uncalib_deformable_model和find_planar_uncalib_deformable_model
帶標定模板的匹配:先讀入攝像機內參和外參 read_cam_par 和read_pose 創建和查找模板算子 create_planar_calib_deformable_model和find_planar_calib_deformable_model
局部變形模板 是指在一張圖上查找模板的時候,可以改變模板的尺寸,來查找圖像上具有局部變形的模板。例如包裝紙袋上圖案查找。參數和線性變形額差不多
算子如下:create_local_deformable_model和find_local_deformable_model
比例縮放末班匹配 是介於一般形狀匹配和線性變形匹配之間的一種方法。它可以匹配放大或是縮小的模板,但是僅限於模板大小的縮放,即行列縮放因子一樣。這也是它和線性縮放最大的不同。
涉及到的算子如下:create_scale_shape_model和find_scale_shape_model