最近筆者學(xué)習(xí)霍夫線變換和LSD直線檢測(cè)算法,有一些學(xué)習(xí)建議丧靡,希望可以給予大家一些幫助饮戳。
????學(xué)習(xí)霍夫變換的感想
????每個(gè)人理解的霍夫變換或許略有差異呻征,但是最主要的是笛卡爾坐標(biāo)系跟極坐標(biāo)系的相互轉(zhuǎn)換挪挤。
霍夫變換分為標(biāo)準(zhǔn)霍夫變換(SHT)叼丑,多尺度霍夫變換(MSHT),累積概率霍夫變換(PPHT)。
????標(biāo)準(zhǔn)霍夫變換(SHT)扛门,多尺度霍夫變換(MSHT)都由函數(shù)HoughLines調(diào)用鸠信,累積概率霍夫變換(PPHT)由HoughLinesP調(diào)用。
笛卡爾坐標(biāo)和極坐標(biāo)
笛卡爾坐標(biāo)的點(diǎn) <=> 極坐標(biāo)的曲線
????在笛卡爾坐標(biāo)系:直線可由參數(shù)斜率和截距(m,b),表示论寨。
????在極坐標(biāo)系:可由參數(shù)極徑和極角(ρ星立,θ)表示。
(ρ葬凳,θ)就是一對(duì)霍夫空間的變量表示绰垂。直角坐標(biāo)系中一個(gè)點(diǎn)(x0, y0)可以代表360°的直線的其中一個(gè)點(diǎn),我們把這個(gè)點(diǎn)旋轉(zhuǎn)360°的直線都用極坐標(biāo)(ρ沮明,θ)表達(dá)出來辕坝,就是一個(gè)在霍夫空間(ρ窍奋,θ)的正弦曲線(大家想象一下荐健,一個(gè)點(diǎn)的360°的直線的(ρ,θ)都不一樣琳袄,不一樣的(ρ江场,θ)組成了正弦曲線上的點(diǎn))。同樣窖逗,直線上的其他點(diǎn)(Xn,Yn)也會(huì)構(gòu)成一組關(guān)于ρ址否,θ的正弦曲線,這樣勢(shì)必存在一個(gè)關(guān)于ρ碎紊,θ相交(即垂直點(diǎn)(r,θ))佑附。
于是乎, 一條直線能夠通過在極坐標(biāo)下尋找交于一點(diǎn)的曲線數(shù)量來檢測(cè)仗考,如果越多曲線交于一點(diǎn)音同,就意味著這個(gè)交點(diǎn)表示的直線由更多的點(diǎn)組成。我們可以通過設(shè)置直線上點(diǎn)的閾值來定義多少條曲線交于一點(diǎn)我們才認(rèn)為檢測(cè)到了一條直線秃嗜。??
?????標(biāo)準(zhǔn)霍夫線變換能檢測(cè)直線权均,但是不能夠檢測(cè)直線兩端顿膨,概率霍夫線變換可以檢測(cè)到直線的兩端。如今霍夫變換可以檢測(cè)圓及其大部分的形狀叽赊。
????下圖這是筆者的總結(jié)恋沃, 如有誤,望請(qǐng)告知必指。?
標(biāo)準(zhǔn)霍夫變換本質(zhì)上是把圖像映射到它的參數(shù)空間(即霍夫空間)上囊咏,它需要計(jì)算所有的M個(gè)邊緣點(diǎn),這樣它的運(yùn)算量和所需內(nèi)存空間都會(huì)很大塔橡。如果在輸入圖像中只是處理m(m<M)個(gè)邊緣點(diǎn)匆笤,則這m個(gè)邊緣點(diǎn)的選取是具有一定概率性的,因此該方法被稱為概率霍夫變換(Probabilistic Hough Transform)谱邪。該方法還有一個(gè)重要的特點(diǎn)就是能夠檢測(cè)出線端炮捧,即能夠檢測(cè)出圖像中直線的兩個(gè)端點(diǎn),確切地定位圖像中的直線惦银。???
?接下來大家學(xué)習(xí)理解霍夫變換檢測(cè)線的源代碼咆课。?????
這是霍夫線變換的源代碼(有中文注釋,利于快速理解):https://download.csdn.net/download/qq_38265674/10438074
?學(xué)習(xí)思考:1.檢測(cè)直線過程中一條比較粗的直線會(huì)被檢測(cè)成兩條分割的直線扯俱??
??????????????????2.霍夫線變換有什么缺點(diǎn)书蚪?如何優(yōu)化?
???????????????????答案自行百度思考迅栅。
?學(xué)習(xí)LSD直線檢測(cè)的感想
?LSD是一種局部提取的算法殊校,運(yùn)行速度比霍夫線變換Hough要快。
?但是有局部算法的缺點(diǎn):
1.對(duì)于直線相交情況读存,因?yàn)樵O(shè)置了每個(gè)點(diǎn)是否USED为流,因此每個(gè)點(diǎn)只能屬于一條直線,若有相交必有至少一條直線被割裂為兩條让簿。
又因?yàn)槠浠谔荻染床欤本€交點(diǎn)梯度值往往又較小(不被檢測(cè)為邊緣點(diǎn))尔当,因此很有可能相交的兩條直線在交點(diǎn)處被割裂為四條線段莲祸。
2.由于局部檢測(cè)算法自增長(zhǎng)的特點(diǎn),對(duì)于長(zhǎng)線段被遮擋椭迎、局部模糊等原因經(jīng)常割裂為多條直線锐帜。這些缺點(diǎn)在Hough變換中不存在。??
詳細(xì)跳轉(zhuǎn)至:https://blog.csdn.net/tianwaifeimao/article/details/17678669
不懂LSD算法原理的話畜号,跳轉(zhuǎn)至:https://blog.csdn.net/carson2005/article/details/9326847
學(xué)習(xí)LSD直線檢測(cè)源代碼:https://download.csdn.net/download/qq_38265674/10438356
以上是筆者的學(xué)習(xí)建議缴阎。