基于霍夫變換的直線檢測的優(yōu)化設(shè)計(jì)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及圖像和視頻處理技術(shù)領(lǐng)域,具體講是一種基于霍夫變換的直線檢測的優(yōu)化設(shè)計(jì)方法。
【背景技術(shù)】
[0002]霍夫變換是圖像處理中識別幾何開關(guān)的一種方法,在圖像處理中有著廣泛的應(yīng)用,霍夫變換不受圖形旋轉(zhuǎn)的影響,易于進(jìn)行幾何圖形的快速變換?;诨舴蜃儞Q的改進(jìn)方法也有很多,其中一個(gè)重要的方法是廣義霍夫變換,可以用來檢測任意形狀的曲線。但是,在許多嵌入式系統(tǒng)中,使用高計(jì)算性能的處理器無論在成本還是在功耗方面都成為不可能,這就要求有非常高效的專用硬件電路來進(jìn)行霍夫變換計(jì)算。
【發(fā)明內(nèi)容】
[0003]本發(fā)明所要解決的技術(shù)問題是,克服現(xiàn)有技術(shù)的缺陷,提供一種高運(yùn)算效率、低資源需求的霍夫變換計(jì)算來實(shí)現(xiàn)體系結(jié)構(gòu)的基于霍夫變換的直線檢測的優(yōu)化設(shè)計(jì)方法。
[0004]為解決上述技術(shù)問題,本發(fā)明提供的基于霍夫變換的直線檢測的優(yōu)化設(shè)計(jì)方法,它包括以下步驟:
[0005]1)對直線建立方程式
[0006]p = xcos Θ +ysin Θ
[0007]2)通過查表方式,得到并存儲(chǔ)cos Θ值和sin Θ值;
[0008]3)按照Θ的大小將計(jì)算分成多個(gè)并行的區(qū)域;
[0009]4)當(dāng)霍夫變換完成當(dāng)前幀圖像計(jì)算后,不再訪問結(jié)果存儲(chǔ)器,利用另一個(gè)獨(dú)立存儲(chǔ)器對下一幀圖像進(jìn)行霍夫變換;同時(shí),后續(xù)峰值檢測模塊開始訪問霍夫變換剛剛完成的結(jié)果存儲(chǔ)器;
[0010]5)當(dāng)步驟4)中的兩個(gè)霍夫變換各自的運(yùn)算都完成了之后,互相交換各自占用的存儲(chǔ)器,這樣,峰值檢測模塊得到了新一幀圖像的變換結(jié)果,而霍夫變換模塊得到了一個(gè)可以重復(fù)使用的存儲(chǔ)器。
[0011]作為改進(jìn),所述的步驟3)中,Θ的取值為0?90度,按照Θ的大小將計(jì)算分成兩路并行的區(qū)域。
[0012]作為進(jìn)一步改進(jìn),所述的步驟3)中,Θ的取值為0?45度,按照Θ的大小將計(jì)算分成四路并行的區(qū)域。
[0013]作為更進(jìn)一步地改進(jìn),所述的步驟3)中,Θ的取值為0?30度,按照Θ的大小將計(jì)算分成六路并行的區(qū)域。
[0014]采用以上結(jié)構(gòu)后,本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
[0015]1)由于在現(xiàn)有技術(shù)的硬件實(shí)現(xiàn)中,sin和cos可以通過cordic算法來計(jì)算,但是在運(yùn)算時(shí)間和硬件資源上這個(gè)代價(jià)都會(huì)非常大,而采用了查表法后,由于sin和cos函數(shù)的對稱性,只需存儲(chǔ)從0到90度的函數(shù)值,-90到0度的函數(shù)值就可以同時(shí)得到,這樣,計(jì)算量就相對減少;
[0016]2)另外,采用模塊自身并行計(jì)算和模塊間并行計(jì)算的方法后,使運(yùn)算的速度有了較大的提升。
【具體實(shí)施方式】
[0017]下面結(jié)合【具體實(shí)施方式】對本發(fā)明作進(jìn)一步詳細(xì)地說明。
[0018]本發(fā)明提供的基于霍夫變換的直線檢測的優(yōu)化設(shè)計(jì)方法,它包括以下步驟:
[0019]1)對直線建立方程式
[0020]以直線檢測為例,在平面直角坐標(biāo)系(X—y)中,一條直線可以用方程y = kx+b來表示。對于直線上一個(gè)確定的點(diǎn)(Xo,y。),有yo= kx o+b,這表示參數(shù)平面(k一b)中的一條直線。因此,圖像中的一個(gè)點(diǎn)對應(yīng)參數(shù)平面中的一條直線,圖像中的一條直線對應(yīng)參數(shù)平面中的一個(gè)點(diǎn)。對圖像上所有的點(diǎn)作霍夫變換,最終所要檢測的直線對應(yīng)的一定是參數(shù)平面中直線相交最多的那個(gè)點(diǎn),這樣就在圖像中檢測出了直線。
[0021]在實(shí)際應(yīng)用中,直線通常采用參數(shù)方程:
[0022]p = xcos Θ +ysin Θ 公式①
[0023]2)通過查表方式,得到并存儲(chǔ)cos Θ值和sin Θ值;如公式①所示,霍夫變換對每一個(gè)點(diǎn)(X,y)要計(jì)算出所有(ρ,Θ),其中p的取值在正負(fù)Sqrt〔(X_-1)2+(Y_-1)2〕之間,Θ的取值在(-90,89)之間。Ρ根據(jù)圖像的分辨率大小而不同,但通常會(huì)達(dá)到1000以上的范圍。所以有效的方法是掃描Θ的所有值,同時(shí)計(jì)算sin Θ和cos Θ,進(jìn)而得到對應(yīng)的P值。
[0024]在硬件實(shí)現(xiàn)中,采用了查表的方式來得到cos值和sin值,由于cos和sin函數(shù)的對稱性,只需存儲(chǔ)從0到90度的函數(shù)值,-90到0度函數(shù)值就可以同時(shí)得到。如果要進(jìn)一步減小查找表的大小,還可以利用稍微復(fù)雜的乘和加運(yùn)算及三角函數(shù)關(guān)系將表減小到0到45度,甚至0到30度。一個(gè)極端的情況是采用遞推關(guān)系對每一度進(jìn)行計(jì)算,這樣只需知道cosl°和sinl°就可以了。
[0025]3)按照Θ的大小將計(jì)算分成多個(gè)并行的區(qū)域;由于cos和sin函數(shù)的對稱性,可以按照Θ的大小將計(jì)算分成多個(gè)并行的區(qū)域,以查找表0到90度為例,這樣,在計(jì)算P = xcos Θ +ysin Θ的時(shí)候,可以同時(shí)計(jì)算p = xcos (-Θ )+ysin (-Θ ),也就是ρ =xcos Θ -ysin Θ??梢娬加觅Y源較多的乘法運(yùn)算也可以共用,唯一額外需要的資源是一個(gè)減法器。
[0026]同理,如果要進(jìn)一步增加模塊內(nèi)計(jì)算并行性,可以和查找表的區(qū)域相配合而得到四路并行(此時(shí),Θ的值從0到45度),六路并行(此時(shí),Θ的值從0到30度),等等。
[0027]4)通常,霍夫變換后會(huì)拉峰值檢測模塊,這樣會(huì)發(fā)生霍夫變換模塊在后續(xù)峰值檢測模塊完成前不能同時(shí)對下一幀圖像進(jìn)行霍夫變換計(jì)算,但是由于圖像通常是以流方式輸入到系統(tǒng)中的,這就造成了存儲(chǔ)器資源上的矛盾。為了增加霍夫變換和其它模塊間的并行度,當(dāng)霍夫變換完成當(dāng)前幀圖像計(jì)算后,不再訪問結(jié)果存儲(chǔ)器,利用另一個(gè)獨(dú)立存儲(chǔ)器對下一幀圖像進(jìn)行霍夫變換;同時(shí),后續(xù)峰值檢測模塊開始訪問霍夫變換剛剛完成的結(jié)果存儲(chǔ)器。
[0028]5)當(dāng)步驟4)中的兩個(gè)霍夫變換各自的運(yùn)算都完成了之后,互相交換各自占用的存儲(chǔ)器,這樣,峰值檢測模塊得到了新一幀圖像的變換結(jié)果,而霍夫變換模塊得到了一個(gè)可以重復(fù)使用的存儲(chǔ)器。
【主權(quán)項(xiàng)】
1.一種基于霍夫變換的直線檢測的優(yōu)化設(shè)計(jì)方法,其特征在于:它包括以下步驟: 1)對直線建立方程式 P = xcos Θ +ysin Θ公式① 2)通過查表方式,得到并存儲(chǔ)cosΘ值和sin Θ值; 3)按照Θ的大小將計(jì)算分成多個(gè)并行的區(qū)域; 4)當(dāng)霍夫變換完成當(dāng)前幀圖像計(jì)算后,不再訪問結(jié)果存儲(chǔ)器,利用另一個(gè)獨(dú)立存儲(chǔ)器對下一幀圖像進(jìn)行霍夫變換;同時(shí),后續(xù)峰值檢測模塊開始訪問霍夫變換剛剛完成的結(jié)果存儲(chǔ)器; 5)當(dāng)步驟4)中的兩個(gè)霍夫變換各自的運(yùn)算都完成了之后,互相交換各自占用的存儲(chǔ)器,這樣,峰值檢測模塊得到了新一幀圖像的變換結(jié)果,而霍夫變換模塊得到了一個(gè)可以重復(fù)使用的存儲(chǔ)器。2.根據(jù)權(quán)利要求1所述的基于霍夫變換的直線檢測的優(yōu)化設(shè)計(jì)方法,其特征在于:所述的步驟3)中,Θ的取值為0?90度,按照Θ的大小將計(jì)算分成兩路并行的區(qū)域。3.根據(jù)權(quán)利要求1所述的基于霍夫變換的直線檢測的優(yōu)化設(shè)計(jì)方法,其特征在于:所述的步驟3)中,Θ的取值為0?45度,按照Θ的大小將計(jì)算分成四路并行的區(qū)域。4.根據(jù)權(quán)利要求1所述的基于霍夫變換的直線檢測的優(yōu)化設(shè)計(jì)方法,其特征在于:所述的步驟3)中,Θ的取值為0?30度,按照Θ的大小將計(jì)算分成六路并行的區(qū)域。
【專利摘要】本發(fā)明基于霍夫變換的直線檢測的優(yōu)化設(shè)計(jì)方法,對直線建立方程式按照θ的大小將計(jì)算分成多個(gè)并行的區(qū)域;當(dāng)霍夫變換完成當(dāng)前幀圖像計(jì)算后,不再訪問結(jié)果存儲(chǔ)器,利用另一個(gè)獨(dú)立存儲(chǔ)器對下一幀圖像進(jìn)行霍夫變換;后續(xù)峰值檢測模塊開始訪問霍夫變換剛剛完成的結(jié)果存儲(chǔ)器;兩個(gè)霍夫變換各自的運(yùn)算都完成了之后,互相交換各自占用的存儲(chǔ)器。sin和cos可以通過cordic算法來計(jì)算,但是在運(yùn)算時(shí)間和硬件資源上這個(gè)代價(jià)都會(huì)非常大,而采用了查表法后,由于sin和cos函數(shù)的對稱性,只需存儲(chǔ)從0到90度的函數(shù)值,-90到0度的函數(shù)值就可以同時(shí)得到,這樣,計(jì)算量就相對減少;采用模塊自身并行計(jì)算和模塊間并行計(jì)算的方法后,使運(yùn)算的速度有了較大的提升。
【IPC分類】G06K9/62
【公開號】CN105373807
【申請?zhí)枴緾N201510703042
【發(fā)明人】潘鈺華
【申請人】寧波裕蘭信息科技有限公司
【公開日】2016年3月2日
【申請日】2015年10月26日