在網上查有關bm演算法的原理,最先出來的總是有關字串匹配的boyer-moore演算法,以至於讓我對這個匹配演算法產生了深深的誤解,然而之前都是直接呼叫opencv的函式,所以原理不甚了解也沒太當回事,直到被老師問到bm演算法的原理是才發現根本講不明白,這也就影響了之後對演算法的優化。
簡單記錄下自己的理解,不對的地方還望指正,畢竟目前都還只是個人的理解。
這是matlab中對disparity函式的幫助中的method解釋,可以看出這個函式可以呼叫sgbm演算法和bm演算法,而bm演算法(blockmatching)寫的就是sad演算法,所以應該就是在畫的等線上完成的sad演算法,這也就解釋了bm演算法比sgbm演算法快這麼多的原因了。
OpenCV雙目匹配演算法
opencv中提供了多種雙目匹配演算法,比如bm,sgbm,hh等,並提供了各演算法主要引數的設定與獲取方式,加速了雙目匹配的演算法開發。雙目匹配遵循以下的流程 相機標定左右相機的內外參 對左右影象進行畸變校正 選擇匹配演算法對校正後的影象進行匹配,計算視差。各匹配演算法也遵循一定的流程,具體的細節...
BM演算法 字串匹配演算法
思想 使用啟發式規則,通過每次的失敗的匹配嘗試,演算法都能根據這些資訊來排除盡可能多的無法匹配的位置 為什麼說是每次呢,因為每次的情況可能不一樣,通過資訊來跳過啟發式規則的得到的步數 目的 利用啟發式規則,盡可能多跳過無法匹配的位置,從而達到更高的效率 方法 壞字元規則和好字尾規則,取其中移動步數較...
字串匹配 BM演算法
bm演算法 1 三個shift函式 d1,d2,d3,函式的作用是決定當匹配不成功時視窗的移動位數。1 d1 字尾u在模式串p中的另乙個位置是最右出現位置是j 不包括在模式串尾的出現 文字串的視窗安全移動方法是將視窗移動m j字元,使文字中的u與模式串中最右邊的u的出現位置相對齊。對模式中的每個字尾...