本發(fā)明屬于圖像處理領(lǐng)域,涉及一種基于漏斗變換的圖像直線檢測方法,適用于基于漏斗變換的直線檢測過程。
背景技術(shù):
當(dāng)今社會,人類獲取信息的手段多種多樣,圖像作為其中相對直觀的一種方式尤為重要。圖像處理(image processing),是用計算機對圖像進(jìn)行分析,以達(dá)到所需結(jié)果的技術(shù),又稱影像處理,是一個正在蓬勃發(fā)展的研究領(lǐng)域;圖像處理一般指數(shù)字圖像處理,數(shù)字圖像是指用工業(yè)相機、攝像機、掃描儀等設(shè)備經(jīng)過拍攝得到的一個大的二維數(shù)組,該數(shù)組的元素稱為像素,其值稱為灰度值。圖像處理技術(shù)的一般包括圖像壓縮,增強和復(fù)原,匹配、描述和識別3個部分,其中特征識別和提取作為關(guān)鍵步驟尤其重要。圖像處理中常用的特征有很多,比如邊緣、直線、角點、曲線等。其中直線比較普遍,構(gòu)成了圖像中的一類重要特征;圖像中的直線是人們對圖像的一種重要的理解,常常對應(yīng)著待檢測物體中某些特征,例如生活中筆直的馬路、一柱擎天的高樓等等,然后通過檢測技術(shù)將這些特征對應(yīng)的直線提取出來,方便識別具體的目標(biāo);因此,圖像中的直線作為構(gòu)成幾何圖形的最基本元素,能夠很好地幫助人們識別目標(biāo)物體。
圖像中的物體和場景很多都包含了直線的結(jié)構(gòu),比如建筑物、機場跑道、橋梁、公路等。直線特征攜帶了很多重要的圖像信息,因此在圖像中準(zhǔn)確地提取直線特征就顯得尤為重要。直線檢測問題是圖像處理、模式識別和計算機視覺等領(lǐng)域一類經(jīng)典的中間層次的問題,直線檢測算法分為霍夫變換類直線檢測方法和非霍夫變換類直線檢測方法。
霍夫變換類直線檢測方法多使用圖像的全局信息進(jìn)行直線檢測,現(xiàn)有最著名的數(shù)字圖像直線檢測方法為標(biāo)準(zhǔn)霍夫變換(Standard Hough Transform,SHT)方法,該標(biāo)準(zhǔn)霍夫變換方法是一種利用圖像全局信息來檢測直線的方法,計算復(fù)雜度比較大,存儲需求也很大,并且檢測準(zhǔn)確率容易受到分辨率和噪聲的影響;針對標(biāo)準(zhǔn)霍夫變換方法存在的問題,學(xué)者們在標(biāo)準(zhǔn)霍夫變換方法的基礎(chǔ)之上提出了基于傅里葉變換的霍夫變換方法(Forier-based HT,F(xiàn)HT)、自適應(yīng)霍夫變換、快速霍夫變換等方法,上述方法統(tǒng)稱為霍夫變換類直線檢測方法,霍夫變換類直線檢測方法的基本思想是基于一個假設(shè)檢驗的過程,即原始圖像坐標(biāo)系下的一條直線對應(yīng)參數(shù)空間中的一個點,相對應(yīng)的,參數(shù)空間內(nèi)的一個點對應(yīng)原始圖像坐標(biāo)系中的一條直線,這樣原始圖像坐標(biāo)系中的一條直線由于斜率和截距相同,因而對應(yīng)參數(shù)空間中的同一個點。
霍夫變換類直線檢測方法做出如下的假設(shè):利用極坐標(biāo)表示原始圖像,極坐標(biāo)系下的原始圖像中包含若干條直線,每條直線可以用一個參數(shù)空間內(nèi)的參數(shù)對唯一標(biāo)示,每個參數(shù)對對應(yīng)著一個累計單元,每個累積單元都對應(yīng)著一條假定的直線,而每條假定的直線上的像素點在經(jīng)過霍夫變換后都能夠?qū)δ硹l假定的直線成為真正的直線提供支持(表現(xiàn)在數(shù)值上)。顯然真實直線得到的“支持票”要大于虛假直線的票值;進(jìn)而可將原始圖像空間的直線轉(zhuǎn)化為帶有票值的參數(shù)空間內(nèi)的局部極大累計單元。最后利用峰值檢測方法,即提取參數(shù)空間中的局部極大值,提取所述局部極大值對應(yīng)的直線。以上所述為霍夫變換類直線檢測方法通常包括的圖像邊緣像素提取(邊緣檢測)、投票累積和峰值檢測三個過程;明顯地,霍夫變換類直線檢測方法在實現(xiàn)時都依賴于邊緣檢測算法,也就是說霍夫變換類直線檢測方法的性能往往會受到邊緣檢測算法性能的制約和影響,這也是該霍夫變換類直線檢測方法的主要問題。
與霍夫變換類方法不同的是,非霍夫變換類方法通過使用圖像的局部信息進(jìn)行直線檢測,該非霍夫變換類方法更適合于直線段的檢測,其中最著名的是線性時間線段檢測算子(Linear-time line segment detector,LSD)算法。LSD算法是一種直線檢測分割算法,能在線性的時間內(nèi)得出亞像素級精度的檢測結(jié)果;該LSD算法能夠在任何數(shù)字圖像上都無需參數(shù)調(diào)節(jié),并能夠自己控制誤檢數(shù)量:平均而言,每張圖有一個誤檢。使用LSD算法的目標(biāo)在于檢測圖像中局部的直線輪廓,經(jīng)過簡單的連接過程就能夠獲得檢測圖像中的直線;LSD算法的主要優(yōu)點是計算量低,且檢測錯誤率比較低,不足是對遮擋比較敏感,這也是LSD算法的主要問題所在。
技術(shù)實現(xiàn)要素:
針對以上現(xiàn)有技術(shù)存在的不足,本發(fā)明提出了一種基于漏斗變換的圖像直線檢測方法,該種基于漏斗變換的圖像直線檢測方法利用直線的斜截式方程,將原始二維圖像空間內(nèi)的直線映射為參數(shù)空間中的局部極大值點,能夠直接得出與局部極大值點相對應(yīng)的直線,并利用漏斗變換能夠快速且有效地檢測出原始二維圖像中的直線信息,實現(xiàn)本發(fā)明的目的。
為達(dá)到上述技術(shù)目的,本發(fā)明采用如下技術(shù)方案予以實現(xiàn)。
一種基于漏斗變換的圖像直線檢測方法,包括以下步驟:
步驟1,確定原始二維圖像,并將原始二維圖像作為待檢測圖像,然后對待檢測圖像進(jìn)行預(yù)處理,得到預(yù)處理后的圖像,所述預(yù)處理后的圖像包括第一圖像和第二圖像;所述第一圖像為對待檢測圖像進(jìn)行上下兩側(cè)補零后的圖像,所述第二圖像為對待檢測圖像進(jìn)行左右兩側(cè)補零后的圖像;
步驟2,分別計算一維離散傅立葉變換后的變尺度圖像和一維離散傅立葉變換后的圖像然后對第一圖像進(jìn)行漏斗變換,得到ω1-y參數(shù)空間內(nèi)的G個峰值點;對第二圖像進(jìn)行逆漏斗變換,得到x-ω2參數(shù)空間內(nèi)的F個峰值點;所述ω1-y參數(shù)空間為坐標(biāo)橫軸ω1和坐標(biāo)縱軸y構(gòu)成的二維空間,所述x-ω2參數(shù)空間為坐標(biāo)橫軸x和坐標(biāo)縱軸ω2構(gòu)成的二維空間;
其中,ω1是一維離散傅立葉變換后的變尺度圖像的坐標(biāo)橫軸,表示一維離散傅立葉變換后的變尺度圖像的角頻率;ω2是一維離散傅立葉變換后的圖像的坐標(biāo)縱軸,表示一維離散傅立葉變換后的圖像的角頻率;x表示待檢測圖像I(x,y)在直角坐標(biāo)系中的坐標(biāo)橫軸,y表示待檢測圖像I(x,y)在直角坐標(biāo)系中的坐標(biāo)縱軸;G和F分別為大于0的自然數(shù);
步驟3,對所述G個峰值點和所述F個峰值點分別進(jìn)行后處理,得到檢測點列表包含的O個檢測點;O≤G+F;
步驟4,對檢測點列表包含的O個檢測點進(jìn)行正確峰值點和虛假峰值點的標(biāo)記,得到L個正確峰值點和L'個虛假峰值點,進(jìn)而得到L個正確峰值點分別在原始二維圖像中對應(yīng)的真實直線;L+L'=O。
本發(fā)明相對于現(xiàn)有技術(shù)主要優(yōu)點在于:
第一,本發(fā)明的創(chuàng)新點在于將漏斗變換應(yīng)用到圖像的直線檢測領(lǐng)域;
第二,本發(fā)明方法能夠在不依賴于邊緣檢測算法的情況下,有效地對圖像中的直線元素進(jìn)行檢測;
第三,本發(fā)明能夠在有效進(jìn)行圖像直線檢測的同時,降低了算法計算量,節(jié)省了時間;
第四,本發(fā)明在檢測效果上相對于傳統(tǒng)方法性能更加出眾,對加性和乘性噪聲、直線寬度、遮擋都有比較好的處理效果。
附圖說明
下面結(jié)合附圖和具體實施方式對本發(fā)明作進(jìn)一步詳細(xì)說明。
圖1本發(fā)明的一種基于漏斗變換的直線檢測的算法的流程示意圖;
圖2A是加入均值為0、方差為0.1的加性高斯白噪聲后得到的仿真圖像示意圖;
圖2B是圖2A經(jīng)過本發(fā)明方法直線檢測后的結(jié)果示意圖;
圖2C是圖2A經(jīng)過標(biāo)準(zhǔn)霍夫變換方法(SHT)直線檢測后得到的結(jié)果示意圖;
圖2D是圖2A經(jīng)過線性時間線段檢測算子(LSD)直線檢測后得到的結(jié)果示意圖;
圖2E是加入噪聲密度為0.3加性椒鹽噪聲的仿真圖像示意圖;
圖2F是圖2E經(jīng)過本發(fā)明方法直線檢測后得到的結(jié)果示意圖;
圖2G是圖2E經(jīng)過標(biāo)準(zhǔn)霍夫變換方法(SHT)直線檢測后得到的結(jié)果示意圖;
圖2H是圖2E經(jīng)過線性時間線段檢測算子(LSD)直線檢測后得到的結(jié)果示意圖;
圖3是采用發(fā)明方法對含有乘性噪聲的圖像進(jìn)行直線檢測后得到的結(jié)果示意圖;
圖4A是含有不同像素寬度的直線圖像示意圖;
圖4B是圖4A經(jīng)過本發(fā)明方法進(jìn)行直線檢測后得到的結(jié)果示意圖;
圖4C是圖4A經(jīng)過標(biāo)準(zhǔn)霍夫變換方法進(jìn)行直線檢測后得到的結(jié)果示意圖;
圖4D是圖4A經(jīng)過線性時間線段檢測算子進(jìn)行直線檢測后得到的結(jié)果示意圖;
圖5A1為像素直徑為0的圓盤遮住八條相交直線的圖像示意圖;
圖5A2為像素直徑為77的圓盤遮住八條相交直線的圖像示意圖;
圖5A3為像素直徑為129的圓盤遮住八條相交直線的圖像示意圖;
圖5A4為像素直徑為286的圓盤遮住八條相交直線的圖像示意圖;
圖5B1為使用本發(fā)明方法檢測遮擋直線的圓盤的像素直徑為0的檢測結(jié)果示意圖;
圖5B2為使用本發(fā)明方法檢測遮擋直線的圓盤的像素直徑為77的檢測結(jié)果示意圖;
圖5B3為使用本發(fā)明方法檢測遮擋直線的圓盤的像素直徑為129的檢測結(jié)果示意圖;
圖5B4為使用本發(fā)明方法檢測遮擋直線的圓盤的像素直徑為286的檢測結(jié)果示意圖;
圖5C1為使用標(biāo)準(zhǔn)霍夫變換方法檢測遮擋直線的圓盤像素直徑為0的結(jié)果示意圖;
圖5C2為使用標(biāo)準(zhǔn)霍夫變換方法檢測遮擋直線的圓盤像素直徑為77的結(jié)果示意圖;
圖5C3為使用標(biāo)準(zhǔn)霍夫變換方法檢測遮擋直線的圓盤像素直徑為129的結(jié)果示意圖;
圖5C4為使用標(biāo)準(zhǔn)霍夫變換方法檢測遮擋直線的圓盤像素直徑為286的結(jié)果示意圖;
圖5D1為使用線性時間線段檢測算子方法檢測遮擋直線的圓盤像素直徑為0的檢測結(jié)果示意圖;
圖5D2為使用線性時間線段檢測算子方法檢測遮擋直線的圓盤像素直徑為77的檢測結(jié)果示意圖;
圖5D3為使用線性時間線段檢測算子方法檢測遮擋直線的圓盤像素直徑為129的檢測結(jié)果示意圖;
圖5D4為使用線性時間線段檢測算子方法檢測遮擋直線的圓盤像素直徑為286的檢測結(jié)果示意圖;
圖6A1為水立方的真實圖像;
圖6A2為教堂的真實圖像;
圖6A3為墻壁的真實圖像;
圖6A4為建筑物的真實圖像;
圖6B1為水立方的真實圖像通過使用本發(fā)明方法得到的直線檢測結(jié)果示意圖;
圖6B2為教堂的真實圖像通過使用本發(fā)明方法得到的直線檢測結(jié)果示意圖;
圖6B3為墻壁的真實圖像通過使用本發(fā)明方法得到的直線檢測結(jié)果示意圖;
圖6B4為建筑物的真實圖像通過使用本發(fā)明方法得到的直線檢測結(jié)果示意圖;
圖6C1為水立方的真實圖像經(jīng)過標(biāo)準(zhǔn)霍夫變換方法得到的直線檢測結(jié)果示意圖;
圖6C2為教堂的真實圖像經(jīng)過標(biāo)準(zhǔn)霍夫變換方法得到的直線檢測結(jié)果示意圖;
圖6C3為墻壁的真實圖像經(jīng)過標(biāo)準(zhǔn)霍夫變換方法得到的直線檢測結(jié)果示意圖;
圖6C4為建筑物的真實圖像經(jīng)過標(biāo)準(zhǔn)霍夫變換方法得到的直線檢測結(jié)果示意圖。
具體實施方式
參照圖1,為本發(fā)明的一種基于漏斗變換的圖像直線檢測方法流程示意圖,該種基于漏斗變換的圖像直線檢測方法,包括以下步驟:
步驟1,確定原始二維圖像,并將原始二維圖像作為待檢測圖像,然后對待檢測圖像進(jìn)行預(yù)處理,得到預(yù)處理后的圖像,所述預(yù)處理后的圖像包括第一圖像和第二圖像;所述第一圖像為對待檢測圖像進(jìn)行上下兩側(cè)補零后的圖像,所述第二圖像為對待檢測圖像進(jìn)行左右兩側(cè)補零后的圖像。
具體地,由于直線的斜截式方程表示為y=kx+b=tan(θ)x+b;其中,k表示直線的斜率,b表示直線的截距,θ表示直線的傾斜角,為直線與x軸之間的夾角。
由于斜截式方程不能表示具有較大的斜率(例如平行于y軸)的直線,因此為了用斜截式方程表示原始圖像中包含的所有直線,將原始二維圖像中包含的所有直線分為兩類,第一類直線的斜率為(-1,1],傾斜角的范圍為θ'∈(-45°,45°];第二類直線的斜率為(-∞,-1]∪(1,+∞),傾斜角的范圍為θ”∈(45°,135°]);第一類直線用其斜率和其在y軸的截距表示,第二類直線用其逆斜率和其在x軸的截距表示。
確定原始二維圖像為待檢測圖像I(x,y),x表示待檢測圖像I(x,y)在直角坐標(biāo)系中的坐標(biāo)橫軸,y表示待檢測圖像I(x,y)在直角坐標(biāo)系中的坐標(biāo)縱軸;并將待檢測圖像I(x,y)置于笛卡爾坐標(biāo)系中,笛卡爾坐標(biāo)系的原點重合于待檢測圖像I(x,y)的中心;待檢測圖像I(x,y)的尺寸為M×N;在待檢測圖像I(x,y)的上下兩側(cè)分別補M/2行的零,得到第一補零之后的待檢測圖像,記為第一圖像,所述第一圖像的尺寸為M×(M+N),M和N分別為大于0的自然數(shù)。
保持位于笛卡爾坐標(biāo)系中的待檢測圖像I(x,y)位置不變,并對待檢測圖像I(x,y)左右兩側(cè)分別補N/2列的零,得到第二補零之后的待檢測圖像,記為第二圖像,所述第二圖像的尺寸為(M+N)×N;然后將所述第一圖像和所述第二圖像,作為預(yù)處理后的圖像。
步驟2,分別計算一維離散(1D)傅立葉變換后的變尺度圖像和1D傅立葉變換后的圖像然后對第一圖像進(jìn)行漏斗變換,得到ω1-y參數(shù)空間內(nèi)的G個峰值點;對第二圖像進(jìn)行逆漏斗變換,得到x-ω2參數(shù)空間內(nèi)的F個峰值點;所述ω1-y參數(shù)空間為坐標(biāo)橫軸ω1和坐標(biāo)縱軸y構(gòu)成的二維空間,所述x-ω2參數(shù)空間為坐標(biāo)橫軸x和坐標(biāo)縱軸ω2構(gòu)成的二維空間;其中,ω1是1D傅立葉變換后的變尺度圖像的坐標(biāo)橫軸,表示1D傅立葉變換后的變尺度圖像的角頻率;ω2是一維離散傅立葉變換后的圖像的坐標(biāo)縱軸,表示一維離散傅立葉變換后的圖像的角頻率;x表示待檢測圖像I(x,y)在直角坐標(biāo)系中的坐標(biāo)橫軸,y表示待檢測圖像I(x,y)在直角坐標(biāo)系中的坐標(biāo)縱軸;G和F分別為大于0的自然數(shù)。
步驟2的子步驟為:
2a)沿著y軸方向?qū)Υ龣z測圖像I(x,y)做一維離散1D傅立葉變換,得到一維離散傅立葉變換后的圖像ω2是一維離散傅立葉變換后的圖像的坐標(biāo)縱軸,表示一維離散傅立葉變換后的圖像的角頻率,ω2≥0;由于待檢測圖像I(x,y)為實圖像,因此有上標(biāo)*表示復(fù)共軛;且
其中,e表示指數(shù)函數(shù),上標(biāo)j表示虛數(shù)單位,dy表示對y的積分;x為待檢測圖像I(x,y)的坐標(biāo)橫軸,與一維離散傅立葉變換后的圖像的坐標(biāo)橫軸相同;y為待檢測圖像I(x,y)的坐標(biāo)縱軸,ω2為一維離散傅立葉變換后的圖像的坐標(biāo)縱軸。
2b)對一維離散傅立葉變換后的圖像進(jìn)行非線性變量壓縮變換(NVMT),得到變尺度圖像ω2≥0,x′=(ω2/ωmax)x,ωmax表示設(shè)定的角頻率最大值,具體數(shù)值需根據(jù)原始二維圖像的圖片質(zhì)量進(jìn)行設(shè)定,本實施例中ωmax=106rad/s。
對于一維離散傅立葉變換后的圖像中ω2<0的部分,根據(jù)和x′=-(|ω2|/ωmax)x,得到ω2為變尺度圖像的坐標(biāo)縱軸,與一維離散傅立葉變換后的圖像的坐標(biāo)縱軸相同;x′為變尺度圖像的坐標(biāo)橫軸。
2c)沿x′方向?qū)ψ兂叨葓D像進(jìn)行1D傅立葉變換,得到1D傅立葉變換后的變尺度圖像ω1是1D傅立葉變換后的變尺度圖像的坐標(biāo)橫軸,表示1D傅立葉變換后的變尺度圖像的角頻率;x′為變尺度圖像的坐標(biāo)橫軸;ω2為變尺度圖像的坐標(biāo)縱軸,分別與一維離散傅立葉變換后的圖像的坐標(biāo)縱軸和1D傅立葉變換后的變尺度圖像的坐標(biāo)縱軸相同。
2d)沿ω2方向?qū)?D傅立葉變換后的變尺度圖像進(jìn)行1D逆傅立葉變換,得到1D逆傅立葉變換后的變尺度圖像y為待檢測圖像I(x,y)的坐標(biāo)縱軸,與1D逆傅立葉變換后的變尺度圖像的坐標(biāo)縱軸相同;ω1為1D傅立葉變換后的變尺度圖像的坐標(biāo)橫軸,與1D逆傅立葉變換后的變尺度圖像的坐標(biāo)橫軸相同。
所述1D逆傅立葉變換后的變尺度圖像其表達(dá)式為:
其中,e表示指數(shù)函數(shù),上標(biāo)j表示虛數(shù)單位,dω2表示對ω2的積分;ω2為變尺度圖像的坐標(biāo)縱軸,分別與一維離散傅立葉變換后的圖像的坐標(biāo)縱軸和1D傅立葉變換后的變尺度圖像的坐標(biāo)縱軸相同。
然后,對第一圖像進(jìn)行漏斗變換,得到ω1-y參數(shù)空間內(nèi)的G個峰值點的具體過程為:
2d.1設(shè)定第一圖像包含G條直線,選取第r條直線Lr(x,y),根據(jù)斜截式直線方程,將該第r條直線Lr(x,y)表示為Lr(x,y)=δ(y-kr-br);其中,kr表示第r條直線Lr(x,y)的斜率,br表示第r條直線Lr(x,y)的截距;r的初始值為1,r∈{1,2,…,G}。
2d.2對第r條直線Lr(x,y)做漏斗變換:首先,對第r條直線Lr(x,y)沿y方向做1D傅立葉變換,得到1D傅立葉變換后第r條直線的二維圖像
接著,對1D傅立葉變換后第r條直線的二維圖像做非線性變量壓縮變換(NVMT)操作,即令ω2x=ωmaxx′,得到非線性變量壓縮變換操作后第r條直線的二維圖像
然后,依次對非線性變量壓縮變換操作后第r條直線的二維圖像中的x′做1D傅立葉變換、ω2做1D逆傅立葉變換,進(jìn)而得到1D逆傅立葉變換后第r條直線的二維圖像進(jìn)而得到第r條直線對應(yīng)的第r個峰值點
δ(ω1-ωmaxkr)δ(y+br)。
可以看到,經(jīng)過漏斗變換,第r條直線Lr(x,y)被映射為ω1-y參數(shù)空間內(nèi)的第r個峰值點δ(ω1-ωmaxkr)δ(y+br);所述ω1-y參數(shù)空間為坐標(biāo)橫軸ω1和坐標(biāo)縱軸y構(gòu)成的二維空間;ω1是1D傅立葉變換后的變尺度圖像的坐標(biāo)橫軸,表示1D傅立葉變換后的變尺度圖像的角頻率;;G和F分別為大于0的自然數(shù)。
2d.3令r加1,重復(fù)子步驟2d.2,直到得到第G條直線對應(yīng)的第G個峰值點δ(ω1-ωmaxkG)δ(y+bG);至此,經(jīng)過上述漏斗變換過程,則將第一圖像包含的G條直線變換為ω1-y參數(shù)空間內(nèi)的G個峰值點;所述ω1-y參數(shù)空間內(nèi)的G個峰值點分別沒有斜率和截距的模糊情況出現(xiàn)。
最后,對第二圖像進(jìn)行逆漏斗變換,得到x-ω2參數(shù)空間內(nèi)的F個峰值點的具體過程為:
2e)沿x軸方向?qū)Υ龣z測圖像I(x,y)做1D傅立葉變換,得到經(jīng)過1D傅立葉變換的待檢測圖像x為待檢測圖像I(x,y)的坐標(biāo)橫軸,ω1為1D傅立葉變換后的變尺度圖像的坐標(biāo)橫軸,與1D逆傅立葉變換后的變尺度圖像的坐標(biāo)橫軸、經(jīng)過1D傅立葉變換的待檢測圖像的坐標(biāo)橫軸相同;y為待檢測圖像I(x,y)的坐標(biāo)縱軸,分別與1D逆傅立葉變換后的變尺度圖像的坐標(biāo)縱軸、經(jīng)過1D傅立葉變換的待檢測圖像的坐標(biāo)縱軸相同。
2f)對經(jīng)過1D傅立葉變換的待檢測圖像進(jìn)行非線性變量壓縮變換(NVMT),即令y′=(ω1/ωmax)y,進(jìn)而得到尺度變換圖像ωmax表示設(shè)定的角頻率最大值,具體數(shù)值需根據(jù)原始二維圖像的圖片質(zhì)量進(jìn)行設(shè)定,本實施例中ωmax=106rad/s;y'為尺度變換圖像的坐標(biāo)縱軸;ω1為1D傅立葉變換后的變尺度圖像的坐標(biāo)橫軸,與1D逆傅立葉變換后的變尺度圖像的坐標(biāo)橫軸、經(jīng)過1D傅立葉變換的待檢測圖像的坐標(biāo)橫軸、尺度變換圖像的坐標(biāo)橫軸相同。
2g)沿y′方向?qū)Τ叨茸儞Q圖像進(jìn)行1D傅立葉變換,得到經(jīng)過1D傅立葉變換的尺度變換圖像ω1為1D傅立葉變換后的變尺度圖像的坐標(biāo)橫軸,與1D逆傅立葉變換后的變尺度圖像的坐標(biāo)橫軸、經(jīng)過1D傅立葉變換的待檢測圖像的坐標(biāo)橫軸、經(jīng)過1D傅立葉變換的尺度變換圖像的坐標(biāo)橫軸相同;ω2為變尺度圖像的坐標(biāo)縱軸,分別與一維離散傅立葉變換后的圖像的坐標(biāo)縱軸、1D傅立葉變換后的變尺度圖像的坐標(biāo)縱軸、經(jīng)過1D傅立葉變換的尺度變換圖像的坐標(biāo)縱軸相同。
2h)沿ω1方向?qū)?jīng)過1D傅立葉變換的尺度變換圖像進(jìn)行1D逆傅立葉變換,得到經(jīng)過1D逆傅立葉變換的尺度變換圖像x為待檢測圖像I(x,y)的坐標(biāo)橫軸,分別與一維離散傅立葉變換后的圖像的坐標(biāo)橫軸、經(jīng)過1D逆傅立葉變換的尺度變換圖的坐標(biāo)橫軸相同;ω2為變尺度圖像的坐標(biāo)縱軸,分別與一維離散傅立葉變換后的圖像的坐標(biāo)縱軸、1D傅立葉變換后的變尺度圖像的坐標(biāo)縱軸、經(jīng)過1D傅立葉變換的尺度變換圖像的坐標(biāo)縱軸、經(jīng)過1D逆傅立葉變換的尺度變換圖的坐標(biāo)縱軸相同。
所述經(jīng)過1D逆傅立葉變換的尺度變換圖像其表達(dá)式為:
其中,e表示指數(shù)函數(shù),上標(biāo)j表示虛數(shù)單位,dω2表示對ω2的積分;ω2為變尺度圖像的坐標(biāo)縱軸,分別與一維離散傅立葉變換后的圖像的坐標(biāo)縱軸和1D傅立葉變換后的變尺度圖像的坐標(biāo)縱軸相同。
所述經(jīng)過1D逆傅立葉變換的尺度變換圖像其得到過程為:
2h.1設(shè)定第二圖像包含F(xiàn)條直線,選取第l條直線Ll(x,y),根據(jù)斜截式直線方程,將該第l條直線Ll(x,y)表示為Ll(x,y)=δ(y-kl-bl)。其中,kl表示第l條直線Ll(x,y)的斜率,br表示第l條直線Ll(x,y)的截距;l的初始值為1,l∈{1,2,…,F}。
2h.2對第l條直線Ll(x,y)進(jìn)行逆漏斗變換:首先,對第l條直線Ll(x,y)沿x軸方向做1D傅立葉變換,得到1D傅立葉變換后第l條直線的二維圖像
接著,對1D傅立葉變換后第l條直線的二維圖像做非線性變量壓縮變換(NVMT)操作,即令ω1y=ωmaxy′,得到第l條直線的尺度變換圖像
然后,依次對第l條直線的尺度變換圖像中的y′做1D傅立葉變換、ω1做1D逆傅立葉變換,進(jìn)而得到1D逆傅立葉變換后第l條直線的尺度變換圖像
進(jìn)而得到第l條直線對應(yīng)的第l個峰值點δ(ω2-ωmaxkl)δ(x+bl)。
可以看到,經(jīng)過漏斗變換,第l條直線Ll(x,y)被映射為x-ω2參數(shù)空間內(nèi)的第l個峰值點δ(ω2-ωmaxkl)δ(x+bl);所述x-ω2參數(shù)空間為坐標(biāo)橫軸x和坐標(biāo)縱軸ω2構(gòu)成的二維空間;x表示待檢測圖像I(x,y)在直角坐標(biāo)系中的坐標(biāo)橫軸,ω2是一維離散傅立葉變換后的圖像的坐標(biāo)縱軸,表示一維離散傅立葉變換后的圖像的角頻率;y表示待檢測圖像I(x,y)在直角坐標(biāo)系中的坐標(biāo)縱軸。
2h.3令l加1,重復(fù)子步驟進(jìn)行2h.2,直到得到第F條直線對應(yīng)的第F個峰值點δ(ω2-ωmaxkF)δ(x+bF);至此,經(jīng)過上述逆漏斗變換過程,則將第二圖像包含的F條直線變換為x-ω2參數(shù)空間內(nèi)的F個峰值點,所述x-ω2參數(shù)空間內(nèi)的F個峰值點分別沒有斜率和截距的模糊情況出現(xiàn);G和F分別為大于0的自然數(shù)。
步驟3,對所述G個峰值點和所述F個峰值點分別進(jìn)行后處理,得到檢測點列表包含的O個檢測點;O≤G+F或O<<G+F。
具體地:步驟3的子步驟如下:
3a)將所述G個峰值點各自對應(yīng)的幅值和所述F個峰值點各自對應(yīng)的幅值進(jìn)行大小排序,得到候選點排序列表C,所述候選點排序列表C包含G+F個候選點,所述G+F個候選點對應(yīng)G+F個峰值點。
3b)初始化:設(shè)定第1個候選點為原始二維圖像中的局部極大值點,
并令p∈{2,3,…,G+F},p表示第p個候選點,p的初始值為2;定義一個檢測點列表,所述檢測點列表包含O個檢測點,令u∈{1,2,…,O},u表示第u個檢測點,u的初值為1;O≤G+F;或者根據(jù)實際情況需要,O<<G+F。
3c)確定第p-1個候選點在原始二維圖像中的鄰域,并選取候選列表中第p個候選點,如果第p個候選點對應(yīng)原始圖像中的位置點位于第p-1個候選點在原始二維圖像中的設(shè)定鄰域內(nèi),則說明第p個候選點不是原始二維圖像中的局部極大值點,并執(zhí)行子步驟3d);反之,第p個候選點是原始二維圖像中的局部極大值點,并執(zhí)行子步驟3e)。
其中,通常情況下選用3×3的窗口作為設(shè)定鄰域的尺寸;在特殊情形下,即原始二維圖像被噪聲損壞比較嚴(yán)重或者原始二維圖像情況比較復(fù)雜時,選用稍大尺寸的鄰域窗口作為設(shè)定鄰域,所述稍大尺寸為大于3的奇數(shù)。
3d)令p加1,返回子步驟3c)。
3e)將第p個候選點作為第u個檢測點,并令u加1。
直到得到第O個檢測點,或者候選點排序列表C中第p'個候選點幅值小于設(shè)定閾值,所述設(shè)定閾值根據(jù)原始二維圖像的圖片質(zhì)量確定,本實施例中所述設(shè)定閾值為2;
p'∈{1,2,…,G+F}。
此時得到的檢測點列表包含O個檢測點,所述O個檢測點為第一類直線的參數(shù)空間內(nèi)的o個峰值點和第二類直線的逆參數(shù)空間內(nèi)的o'個峰值點,所述o個峰值點分別對應(yīng)o條直線,所述o'個峰值點分別對應(yīng)o'條直線。
步驟4,對檢測點列表包含的O個檢測點進(jìn)行正確峰值點和虛假峰值點的標(biāo)記,得到L個正確峰值點和L'個虛假峰值點,進(jìn)而得到L個正確峰值點分別在原始二維圖像中對應(yīng)的真實直線;L+L'=O。
對于步驟3提取得到的峰值,進(jìn)行直線確認(rèn)過程以消除有的峰值可能存在的模糊現(xiàn)象。
具體地,直線確認(rèn)過程的具體子步驟如下(4a-4e):
4a)初始化:分別令s∈{1,2,…,o},s'∈{1,2,…,o'},s表示第s條直線,s'表示第s'條直線,o表示檢測點列表中第一類直線的參數(shù)空間內(nèi)的峰值點個數(shù),o'表示檢測點列表中第二類直線的逆參數(shù)空間內(nèi)的峰值點個數(shù);s和s'的初始值分別為1。
分別令q∈{1,2,…,L},q'∈{1,2,…,L'},q表示第q個正確峰值點直線,q'表示第q'個虛假峰值點,L表示檢測點列表中標(biāo)記的正確峰值點個數(shù),L'表示檢測點列表中標(biāo)記的虛假峰值點個數(shù);q和q'的初始值分別為0。
4b)對于第一類直線中的第s條直線,;確定與第s條直線對應(yīng)的峰值點在第一類直線的參數(shù)空間內(nèi)的坐標(biāo)為(m,n),并且待檢測圖像的尺寸為M×N,則分別計算第s條直線的斜率k和第s條直線在y軸的截距by,其表達(dá)式分別為:
k=2m/M,m=-M/2,-M/2+1,…,M/2,
by=n,n=-(M+N)/2,-(M+N)/2+1,…,(M+N)/2。
對于第二類直線中的第s'條直線,確定與第s'條直線對應(yīng)的峰值點在第二類直線的逆參數(shù)空間內(nèi)的坐標(biāo)為(m',n'),并且待檢測圖像的尺寸為M×N,則分別計算第s'條直線的逆斜率1/k'和第s'條直線在x軸的截距bx,其表達(dá)式分別為:
1/k'=2n/N,n=-N/2,-N/2+1,…,N/2,
bx=m,m=-(M+N)/2,-(M+N)/2+1,…,(M+N)/2。
4b)根據(jù)第s條直線的斜率k和第s條直線在y軸的截距by,以及第s'條直線的逆斜率1/k'和第s'條直線在x軸的截距bx,在原始二維圖像內(nèi)建一個包含N個像素寬度的矩形條帶圖像ss',所述N屬于3—7,第s條直線和s'條直線在位于矩形條帶圖像ss'的中間。
4c)沿著長度方向?qū)匦螚l帶圖像進(jìn)行1D積分,得到矩形條帶圖像ss'的積分結(jié)果;如果所述積分結(jié)果是線性函數(shù),那么線性函數(shù)的峰值點對應(yīng)原始二維圖像中的一條真實直線,且該線性函數(shù)的峰值點是正確峰值點,并標(biāo)記出矩形條帶圖像ss'中的正確峰值點,令q加1;如果所述積分結(jié)果是階躍函數(shù),則階躍函數(shù)的峰值點則不對應(yīng)原始二維圖像中的任何一條真實直線,說明階躍函數(shù)的峰值點是原始二維圖像中的噪聲、紋理導(dǎo)致的虛假峰值點,即偽峰,并標(biāo)記出矩形條帶圖像ss'中的虛假峰值點,令q'加1。
其中,原始二維圖像中的真實直線形成的矩形條帶圖像ss'沿其長度方向的積分結(jié)果是線性函數(shù),那么該線性函數(shù)的峰值點對應(yīng)著原始二維圖像中的一條真實直線,該線性函數(shù)的峰值點是正確峰值點;原始二維圖像中由于噪聲、紋理因素組成的虛假峰值點(即偽峰)形成的矩形條帶圖像ss'沿其長度方向的積分結(jié)果為階躍函數(shù),那么該階躍函數(shù)的峰值點則不對應(yīng)原始二維圖像中的任何一條真實直線,說明該階躍函數(shù)的峰值點是原始二維圖像中的噪聲、紋理導(dǎo)致的虛假峰值點,即偽峰。
4d)分別令s和s'加1,依次重復(fù)子步驟4b)和4c),直到標(biāo)記出矩形條帶圖像oo'中的第L個正確峰值點或第L'個虛假峰值點,此時完成了將檢測點列表包含的O個檢測點進(jìn)行L個正確峰值點和L'個虛假峰值點的標(biāo)記,進(jìn)而得到L個正確峰值點分別在原始二維圖像中對應(yīng)的真實直線;L+L'=O。
下面通過仿真實驗對本發(fā)明效果做進(jìn)一步驗證說明。
(一)實驗條件
實驗一:對被加性噪聲污染了的圖像進(jìn)行直線檢測;實驗二:對被乘性噪聲污染了的圖像進(jìn)行直線檢測;實驗三:對不同寬度的直線圖像進(jìn)行直線檢測;實驗四:對被遮擋了的直線圖像進(jìn)行直線檢測;實驗五:對真實圖像進(jìn)行直線檢測。
(二)實驗內(nèi)容
為了進(jìn)一步說明本發(fā)明方法較其它直線檢測方法的優(yōu)越性,做如下五組仿真實驗。
實驗一:本實驗采用本發(fā)明方法和其他方法對仿真圖像進(jìn)行直線檢測處理,對加入均值為0、方差為0.1的加性高斯白噪聲的被污染圖像,和加入噪聲密度為0.3的加性椒鹽噪聲的被污染圖像分別進(jìn)行直線檢測,意在評價本發(fā)明直線檢測算法對加性噪聲的抗干擾能力。
圖2A是加入均值為0、方差為0.1的加性高斯白噪聲的仿真圖像示意圖,對圖2A表示的仿真圖像分別采用發(fā)明方法、標(biāo)準(zhǔn)霍夫變換方法(SHT)、線性時間線段檢測算子(LSD)分別進(jìn)行直線檢測的仿真結(jié)果分別如圖2B、圖2C、圖2D所示;圖2B是圖2A經(jīng)過本發(fā)明方法直線檢測后的結(jié)果示意圖;圖2C是圖2A經(jīng)過標(biāo)準(zhǔn)霍夫變換方法(SHT)直線檢測后得到的結(jié)果示意圖;圖2D是圖2A經(jīng)過線性時間線段檢測算子(LSD)直線檢測后得到的結(jié)果示意圖。
圖2E是加入噪聲密度為0.3加性椒鹽噪聲的仿真圖像示意圖,對圖2E表示的仿真圖像分別采用發(fā)明方法、標(biāo)準(zhǔn)霍夫變換方法(SHT)、線性時間線段檢測算子(LSD)分別進(jìn)行直線檢測的仿真結(jié)果分別如圖2F、圖2G、圖2H所示;圖2F是圖2E經(jīng)過本發(fā)明方法直線檢測后得到的結(jié)果示意圖;圖2G是圖2E經(jīng)過標(biāo)準(zhǔn)霍夫變換方法(SHT)直線檢測后得到的結(jié)果示意圖;圖2H是圖2E經(jīng)過線性時間線段檢測算子(LSD)直線檢測后得到的結(jié)果示意圖。
實驗二:本實驗采用本發(fā)明方法對仿真圖像進(jìn)行直線檢測處理,對一幅加入乘性噪聲的圖像進(jìn)行直線檢測,評價本發(fā)明方法對乘性噪聲的抗干擾能力,圖3是采用發(fā)明方法對含有乘性噪聲的圖像進(jìn)行直線檢測后得到的結(jié)果示意圖。
實驗三:本實驗采用本發(fā)明方法和其他方法對仿真圖像進(jìn)行直線檢測處理,評價發(fā)明方法對不同寬度直線的實際檢測效果;實驗具體內(nèi)容為:對一幅內(nèi)含有不同像素寬度的直線的圖像分別采用發(fā)明方法、標(biāo)準(zhǔn)霍夫變換方法(SHT)、線性時間線段檢測算子(LSD)進(jìn)行直線檢測,觀察并分析結(jié)果。
圖4A是含有不同像素寬度的直線圖像示意圖,對圖4A表示的仿真圖像分別采用發(fā)明方法、標(biāo)準(zhǔn)霍夫變換方法(SHT)、線性時間線段檢測算子(LSD)進(jìn)行直線檢測的仿真結(jié)果分別如圖4B、圖4C、圖4D所示;圖4B是圖4A經(jīng)過本發(fā)明方法進(jìn)行直線檢測后得到的結(jié)果示意圖;圖4C是圖4A經(jīng)過標(biāo)準(zhǔn)霍夫變換方法進(jìn)行直線檢測后得到的結(jié)果示意圖;圖4D是圖4A經(jīng)過線性時間線段檢測算子進(jìn)行直線檢測后得到的結(jié)果示意圖。
實驗四:本實驗采用本發(fā)明方法和其他方法對仿真圖像進(jìn)行直線檢測處理,評價發(fā)明方法的抗遮擋能力;實驗具體內(nèi)容為:對被不同大小圓盤遮擋的八條相交直線圖像采用發(fā)明方法、標(biāo)準(zhǔn)霍夫變換方法(SHT)、線性時間線段檢測算子(LSD)分別進(jìn)行直線檢測,觀察并分析結(jié)果,其中遮擋直線的圓盤像素直徑分別0、77、129、286。
圖5A1-圖5A4是被不同大小圓盤遮擋的八條相交直線的圖像示意圖,其中遮擋直線的圓盤像素直徑分別0、77、129、286;對圖5A1-圖5A4表示的仿真圖像分別采用發(fā)明方法、標(biāo)準(zhǔn)霍夫變換方法(SHT)、線性時間線段檢測算子(LSD)進(jìn)行直線檢測的仿真結(jié)果分別如圖5B1-圖5B4、圖5C1-圖5C4、圖5D1-圖5D4所示。
實驗五:本實驗采用本發(fā)明方法和其他方法對仿真圖像進(jìn)行直線檢測處理,評價本發(fā)明方法對真實圖像的直線檢測能力;實驗具體內(nèi)容為:分別對不同情景下的真實圖像(分別為水立方教堂,墻壁和建筑物)采用發(fā)明方法、標(biāo)準(zhǔn)霍夫變換方法(SHT)進(jìn)行直線檢測,觀察并分析結(jié)果。
圖6A1-圖6A4是不同情景下的真實圖像,分別為水立方、教堂、墻壁和建筑物,對圖6A1-圖6A4表示的仿真圖像分別采用發(fā)明方法、標(biāo)準(zhǔn)霍夫變換方法(SHT)進(jìn)行直線檢測的仿真結(jié)果分別如圖6B1-圖6B4、圖6C1-圖6C4所示。
(三)結(jié)果分析
實驗一:對比圖2A-圖2D和圖2E-圖2H可以發(fā)現(xiàn),對于提取含有加性噪聲(包括加性高斯噪聲和加性椒鹽噪聲)圖像中直線的問題,經(jīng)過直線檢測后,SHT方法的檢測效果一般,有著較高的錯檢率;LSD方法對直線出現(xiàn)了漏檢的情況,不能檢測出所有的直線;而本發(fā)明方法正確檢測出了所有的直線,說明本發(fā)明方法能夠?qū)有栽肼曈兄容^好的抗干擾能力,并能夠在加性噪聲的影響下依然保證著較好的檢測效果。
實驗二:由圖3可以發(fā)現(xiàn),對于提取含有乘性噪聲圖像中的直線問題,本發(fā)明方法的檢測性能依然很好;相比之下,由于乘性噪聲相比加性噪聲更為復(fù)雜,會極大地影響圖像質(zhì)量。那些依賴于邊緣濾波器的直線檢測算法往往對此類問題無能為力,例如Canny邊緣檢測算子由于不具有恒虛警率特性,會檢測出較多的虛假邊緣點,從而引起直線檢測結(jié)果中虛假直線的產(chǎn)生;相比之下,由于本發(fā)明方法使用的漏斗變換法不需要依賴于邊緣檢測濾波器,進(jìn)而檢測含有乘性噪聲圖像中直線的時候效果依然很好。實驗結(jié)果說明本發(fā)明方法能夠?qū)Τ诵栽肼曈兄^好的抗干擾能力,并能夠在乘性噪聲影響下依然保證著較好的檢測結(jié)果。
實驗三:對比圖4A-圖4D可以發(fā)現(xiàn),對于含有不同直線寬度的圖像的直線檢測問題,總體上,三種方法均能檢測出一些直線;其中SHT方法僅能檢測出單像素寬度的直線,當(dāng)直線寬度增加時,SHT方法會檢測出多條相交的直線;LSD算法可以檢測出3像素寬度和5像素寬度的直線,但對于單像素寬度的直線,LSD方法會錯誤的在直線兩側(cè)檢測出兩條平行直線;本發(fā)明方法可以準(zhǔn)確檢測出所有寬度的直線,當(dāng)直線寬度大于1像素時,本發(fā)明方法會顯示兩條直線,這是因為當(dāng)直線寬度較大時,該直線可以看作為兩條階梯狀邊緣形成的兩條直線;實驗結(jié)果說明本發(fā)明可以對不同寬度的直線均有著較好的檢測能力,能夠在直線寬度不同的情況下依然保證著較好的檢測結(jié)果。
實驗四:對比圖5A1-5A4、圖5B1-5B4、圖5C1-5C4、圖5D1-5D4可以發(fā)現(xiàn),對于被不同大小圓盤遮擋的八條直線的檢測問題,SHT方法和本發(fā)明方法都較好地完成直線檢測;其中,SHT方法在像素遮擋半徑小于286時,可以準(zhǔn)確的檢測出所有直線;當(dāng)遮擋半徑等于286時檢測出了一條虛假直線;LSD方法對遮擋情況則十分敏感,隨著遮擋半徑的增大,LSD方法也標(biāo)記出了更多的錯誤直線;而本發(fā)明方法對遮擋情況的處理結(jié)果十分理想,正確的檢測出了所有直線;實驗結(jié)果表明,本發(fā)明可以對遮擋情況的直線檢測問題有著很好的處理能力,能夠在遮擋情況下依舊保證著比較好的檢測結(jié)果。
實驗五:對比圖6A1-6A4、圖6B1-6B4、圖6C1-6C4可以發(fā)現(xiàn),對于不同實際情況下真實圖像中的直線檢測問題,SHT方法對隨機對齊的紋理會產(chǎn)生一些虛假直線;本發(fā)明方法能夠正確檢測出實際圖像中的絕大多數(shù)直線,并相對于傳統(tǒng)方法,本發(fā)明方法已經(jīng)展現(xiàn)出了很好的實際圖像直線檢測性能。
綜上所述,仿真實驗驗證了本發(fā)明的正確性,有效性和可靠性。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍;這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。