因未測試其他作者的算法時間和效率,本文不敢自稱是最快的,但是速度也可以肯定說是相當快的,在一臺I5機器上占用單核的資源處理 3000 * 2000的灰度數(shù)據(jù)用時約 20ms,并且算法和核心的大小是無關(guān)的,即所謂的o(1)算法。

      在實現(xiàn)本算法之前,也曾經(jīng)參考何凱明在暗通道去霧時提出的一篇參考論文中的算法: STREAMING MAXIMUM-MINIMUM FILTER USING NO MORE THAN THREE COMPARISONS PER ELEMENT ,這篇文章所描述的過程也是o(1)的,速度也相當快,不過還是不夠快。

      我曾經(jīng)自己構(gòu)思了一個想法,也是基于行列分離的,在速度上比上文的代碼又要快,并且也是o(1)算法,但是算法速度和圖片的內(nèi)容有關(guān),比如對一個圖進行了一次算法后,再次對結(jié)果執(zhí)行相同的算法,可能后一次就要慢很多,這和我改進的算法本身有關(guān)系,但是這種情況是很少見的。

     本文所要介紹的算法也是在很久以前就看到過的,但是一直沒有引起我的重視,其對應(yīng)的參考論文是 A fast algorithm for local minimum and maximum filters on rectangular and octagonal kernels  ,當時覺得論文的實現(xiàn)起來可能沒有我自己構(gòu)思的快,也就沒有去深究。

     論文的實現(xiàn)步驟也是基于行列分離的,即先進行行方向的一維運算,然后再對結(jié)果進行列方向的一維計算,具體的理論描述大家去研究論文吧。

     那其實論文的核心就是下面這個圖。

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設(shè)計培訓,網(wǎng)站建設(shè)培訓學習是年輕人改變自己的最好方式