▎基於形狀的模板匹配
在開始之前先讓我們瞭解一下什麼是基於形狀的模板匹配。形狀是事物或物質的一種存在或表現形式,如長方形、正方形等。在圖像中,形狀是一種對邊緣或區域的描述方式。HALCON基於形狀的匹配是一種通過圖像邊緣進行被測物識別和定位的模式識別算法。該算法對光照的變化有很好的魯棒性且處理速度快,是工業視覺解決方案中常用的定位手段。
本次使用的圖像位於“%HALCONIMAGES%\board”
▎創建模板
打開模板匹配插件→加載圖像→選擇模板區域
▎調整模板常數
// 標準模板參數
ROI選擇完畢,點擊“參數”選項卡,此時插件已經爲我們自動配置了匹配參數。圖像窗口中紅色部分爲用於匹配的模板邊緣。
HALCON採用滯後閾值算法進行邊緣的提取,我們可以通過修改“對比度(低)”和“對比度(高)”調整邊緣的完整性。在邊緣的提取過程中對比度超過“對比度(高)”像素會被算法選爲邊緣點,對比度低於“對比度(低)”的像素將被算法視爲背景,而在這兩者之間的點將作爲候選點,如果這些點與已選邊緣點相連則他們也會被選出。一般我們會先調整“對比度(高)”使得大部分邊緣可見,再調整“對比度(低)”去除對比度較低噪聲。最後調整“最小組件尺寸”去除較小的噪聲邊緣。
金字塔是圖像處理提速的重要手段,HALCON的模板匹配算法也採用了這種方式,在參數中我們可以手動設置或使用插件進行自動配置,對於對實時性要求較高的應用場景,建議大家把金子塔級別調整到3或更高。設置好參數後,請大家到“創建”選項卡中,通過拖拽該選項卡下的金子塔級別滑塊,查看各級金字塔圖像中的邊緣檢測情況。一般我們認爲,在整個模板區域內,邊緣像素點達到二十個上才爲有效模板邊緣。
我需要根據被測物可能出現的角度變化來設置“起始角度”和“角度範圍”。它們會影響模板創建時間、模板數據結構尺寸以及匹配時間。“角度範圍”越小,創建模板和模板匹配時間越短。
縮放參數用於指定匹配過程中模板的縮放範圍。設置該參數後,在匹配過程中,模板會先根據縮放範圍和步長在行列方向進行縮放,而後再進行模板位置和角度的匹配計算。該參數默認爲1,即不進行任何縮放變換。
// 高級模板參數
角度步長:
插件會根據模板數據自動計算,步長越大處理速度越快,但匹配所獲得的角度數據精度越低。此參數一般選擇大於等自動配置的值。
縮放步長:
插件會根據模板數據自動計算,步長越大處理速度越快,匹配所獲得的縮放係數精度越低。此參數一般選擇大於等自動配置的值。
度 量:
指定模板邊緣極性和與匹配對象邊緣極性(像素灰度從暗到亮或從亮到暗)的關係。
1.use_polarity
1.(根據邊緣極性進行匹配)
2.ignore_global_polarity
2.(忽略全局邊緣極性變化)
3.ignore_local_polarity
3.(忽略局部邊緣極性變化)
▎測試
點擊應用選項卡中的“加載…”按鈕,並選擇測試圖像,點擊“檢測所有”按鈕,圖像窗口中綠色邊緣爲搜索到的模板。
▎生成代碼
在“代碼生成”選項卡下,點擊“插入代碼”按鈕,即可將我們剛纔的設置生成HDevelop腳本並插入到代碼窗口中。
默認生成代碼分爲兩個部分
// 創建模板
// 模板匹配