ssda序貫相似性檢測演算法
ssda是一種基於模板匹配的圖形匹配演算法,目前的匹配方法主要有,基於灰度相關的匹配,基於特徵的匹配燈。
優點:方法簡單,抗干擾性能好,易於硬體實現。
缺點:計算量大。
所以該文章通過一系列方法來改進演算法。
基本的ssda演算法
目標影象記為s,大小為k*l,待搜尋影象記為w,大小為m*n。匹配時選擇目標影象的左上角為參考點,當前待匹配點位於w上的(u,v)處時,在w中所選取的待匹配區域是以點(u,v),(u,v+l-1),(u+k-1,v),(u+k-1,v+l-1)組成的區域。相當於參考點位置(i,j)的點的匹配誤差定義為:
在目標影象和帶匹配區域中隨機抽取n個點,計算這些點引起的誤差和序列,記為:
當如果小於這個閾值的話,則抽取下乙個點做計算。直到大於這個閾值,或者k=n,記下k值。
閾值的設定
對不同的待匹配點進行上述匹配計算,最後取最大k值對應的待匹配點位置,認為這就是需要找的匹配點。
改進的ssda演算法
減少雜訊的影響
在每個帶匹配區域中,計算第k點的誤差
如果第k點的誤差
進行梯度處理
由於在一些非匹配點中,但影象中相似部分比較多的時候,一些點之間的誤差可能會相當小,在該點處停止計算的時間將往後退,道濟計算量大規模的增大。
所以採用梯度處理的方法,首先分別計算目標影象和待搜尋影象的灰度梯度,並以閾值t1對他們進行量化處理,大於閾值的為1,小於閾值的為0.其中點1的為影象的特徵點,然後隨機抽取部分特徵點對影象進行匹配。
演算法基本流程
計算目標影象與待搜尋影象各自某個方向的影象梯度。
選取用於計算誤差的點:將梯度影象中梯度大於閾值t1的點作為計算匹配誤差的特徵點,在其中隨機抽取n點,為了保證匹配演算法的準確性,所取得的數目佔模板內總點數的比例不能太小。
設定待匹配點(u,v)=(0,0)
初始化設定:k=1,e(u,v,0)=0
計算,如果小於雜訊閾值 ,進行下一步
結合金字塔法
把模板影象和目標影象進行等比例降取樣,一般根據影象具體解析度定。最多8倍降取樣,2倍為乙個單位。
從最小解析度開始進行ssda演算法。
但因為解析度較低可能只能得出幾個粗匹配位置,所以在上一層解析度上對應的乙個或多個粗匹配位置附近進行,獲得概率更大的幾個取樣點。
依次類推下,直到最大解析度 s0,即整個匹配過程結束。
比較各個k,支出最大k值對應的位置(u,v),這就是要找到的匹配點。 效果
結果:
模板:
我對SNS我理解
模仿也要做得比真的還好,比如qq,它的業務包括客戶端都是模仿別人的,但能做得像它那樣,的確不容易。sns在國內肯定能火的,不過現在的sns 只是太跟風了,沒有了自己的特點,很多的sns 很難看出它到底還是不是sns,或者它到底去哪個方向?自己都沒有弄清楚。所以sns在國內是很有機遇的。其實在當前經濟...
我對補碼的理解
計算機中用補碼表示乙個數是為了方便運算的,這樣減法也可以通過加法來實現。為什麼這樣設計行呢?主要是因為計算機里數的特殊儲存格式決定的,計算機裡用固定位數表示乙個數,超過該位置的部分會被捨棄。拿8byte的int型來說,無符號形式下,最大到1111 1111 255,超過了該範圍,會被截斷的,如 11...
我對SOA的理解
每次給客戶做工作流培訓,都要接觸不同的行業,但我每次都被問了乙個同樣的問題 hongsoft老師,請問應該怎麼理解soa?這個問題其實和工作流培訓關係不大,但現在如火如荼的soa的推廣都和bpel扯上了關係,而bpel又和工作流間 說不清,道不明 所以我還真要說說,我是怎麼理解soa的。7 80年代...