問題提出:
OpenCV並不像Halcon一樣提供帶有旋轉和縮放的的模板匹配。本文對帶旋轉和縮放的模板匹配問題進行限定,只針對的目標縮放範圍爲95%到105%,旋轉角度爲-5度到5度的情況,嘗試用opencv解決。
問題分析:
帶有旋轉和縮放,首先想到使用外輪廓進行Hu矩匹配,然後根據外輪廓周長比例和麪積開方的比例確定縮放係數,根據輪廓最小包圍旋轉矩形的角度差確定旋轉角度。這個思路要求目標外輪廓不能對稱,比如圓,正方形,長方形這些,同時最小包圍矩形也不能是長寬比較接近的長方形甚至正方形,否則無法確定旋轉角度(或者多個可能角度一一使用灰度匹配去判斷)。但是本文有個限制條件,縮放比例和旋轉角度較小。所以另一個思路是搜索的方法,只要找到一個好的的搜索策略,那麼算法的時間也是可以接受的。
實現效果
如下圖所示,左邊是模板,右邊是待匹配的目標,有4度的旋轉。
左邊是帶旋轉和污損的目標,右邊是匹配結果(疊加模板後找到污損區域)。
思路一:Hu矩
使用Hu矩由於限制較多,不能對實現效果中的圖進行處理,因此使用如下模板
要從如下圖中找出
代碼實現: