吳玉龍,岳大森,丁 勇,盧康昕,趙廣輝
(1.昆山市建設(shè)工程質(zhì)量檢測(cè)中心,昆山 215337;2.南京理工大學(xué) 理學(xué)院,南 京210094)
裂縫會(huì)對(duì)房屋結(jié)構(gòu)的防水性、承載力和耐久性產(chǎn)生嚴(yán)重影響,因此對(duì)房屋裂縫的檢測(cè)鑒定是結(jié)構(gòu)檢測(cè)、危房鑒定和安全監(jiān)測(cè)的重要內(nèi)容。目前,常采用人工檢測(cè)手段采集裂縫數(shù)據(jù),但該手段具有速度慢、難度大等缺點(diǎn),因此隨著待檢測(cè)房屋數(shù)量的不斷增加,傳統(tǒng)的人工檢測(cè)手段已經(jīng)無法滿足龐大的檢測(cè)任務(wù)[1]。
計(jì)算機(jī)技術(shù)在土木工程行業(yè)的應(yīng)用越來越廣泛,基于數(shù)字圖像處理技術(shù)的裂縫檢測(cè)具有非接觸式、處理精度高、靈活性高等優(yōu)點(diǎn),已成為國(guó)內(nèi)外學(xué)者研究的熱點(diǎn)。采用數(shù)字圖像處理技術(shù)進(jìn)行裂縫檢測(cè)的方法已在裂縫提取方面取得顯著成果。然而,此類算法的研究重點(diǎn)一般為圖像降噪和閾值分割,對(duì)裂縫寬度、長(zhǎng)度、面積等參數(shù)的圖像計(jì)算研究較少,難以實(shí)現(xiàn)對(duì)混凝土表面裂縫的定量分析,不利于數(shù)字圖像處理技術(shù)的現(xiàn)實(shí)應(yīng)用。事實(shí)上,在房屋建筑的檢測(cè)中,裂縫的寬度、長(zhǎng)度等參數(shù)的測(cè)量十分重要[2-3]。
針對(duì)上述局限性,筆者提出了一種基于數(shù)字圖像處理的裂縫參數(shù)計(jì)算方法,將裂縫假想為被若干圓形充填的平面空間,由一系列可量化的圓的坐標(biāo)和直徑來近似代替,從而實(shí)現(xiàn)裂縫幾何模型的建立與復(fù)原。
裂縫的產(chǎn)生與發(fā)展的理論分析較為復(fù)雜,然而,當(dāng)研究重點(diǎn)放在裂縫參數(shù)的計(jì)算時(shí),材料構(gòu)造、結(jié)構(gòu)形式與施工特點(diǎn)將不在考慮的范疇,裂縫問題也隨之轉(zhuǎn)化為數(shù)學(xué)幾何形態(tài)研究的問題。
裂縫的幾何形態(tài)為線狀,特點(diǎn)為寬度相對(duì)較小、長(zhǎng)度相對(duì)較長(zhǎng)、走向斜率變化,具有自然間斷和分叉等。現(xiàn)有的裂縫寬度圖像常采用法線、平行線等方式計(jì)算(見圖1),但這些方式存在定義復(fù)雜、計(jì)算困難的缺點(diǎn),在多條裂縫的交匯點(diǎn)易產(chǎn)生“偽寬度”,對(duì)復(fù)雜裂縫的寬度計(jì)算時(shí)易產(chǎn)生較大誤差[4-7]。
圖1 裂縫骨架圖像的法線與平行線示意
從另一個(gè)角度而言,裂縫可視為若干塊剛體(一般為兩塊)由于相對(duì)運(yùn)動(dòng)而產(chǎn)生的間隙,該間隙可由某種假想的填充物或圖形進(jìn)行填充。當(dāng)采用三角形、矩形等多邊形進(jìn)行填充時(shí),存在模型復(fù)雜、參數(shù)復(fù)原缺失等問題,不利于裂縫的參數(shù)計(jì)算[8-9];而圓形是一種軸對(duì)稱圖形,具有無數(shù)條對(duì)稱軸,其旋轉(zhuǎn)不變性有利于反映裂縫寬度的情況。同時(shí),圓的解析方程是相當(dāng)成熟而簡(jiǎn)潔的,因此考慮采用圓作為填充圖形,通過圓心、半徑、直徑等參數(shù)反映裂縫參數(shù),進(jìn)而描述裂縫。假想圓填充裂縫的形狀示意如圖2所示。
圖2 假想圓填充裂縫形狀示意
因此,裂縫的寬度可定義為:以裂縫邊緣一點(diǎn)為切點(diǎn)的裂縫最大內(nèi)接圓直徑為該處的裂縫寬度。
數(shù)字圖像由像素構(gòu)成,圓在其中反映為離散的“像素多邊形”,因此數(shù)字圖像中不存在絕對(duì)的圓。數(shù)字圖像中的圓應(yīng)重新定義,讓像素圓的直徑在不斷增大時(shí),該“像素多邊形”越來越平滑,形狀和性質(zhì)也越趨近于圓。
參考圓的定義與標(biāo)準(zhǔn)方程,圓為同一平面內(nèi)到定點(diǎn)的距離等于定長(zhǎng)的點(diǎn)的集合,在平面直角坐標(biāo)系(xOy)中,以點(diǎn)(a,b)為圓心,r為半徑的圓的標(biāo)準(zhǔn)方程為
(x-a)2+(y-b)2=r2
(1)
像素圓是假想填充圓的圖形化結(jié)果,應(yīng)視為實(shí)心填充圓,同時(shí)實(shí)心圓也有利于之后的計(jì)算。不難得到,像素圓為圖像坐標(biāo)系內(nèi)到某固定坐標(biāo)的距離小于等于定長(zhǎng)的像素集合。在圖像坐標(biāo)系中,在給定像素圓心坐標(biāo)(a,b)處生成直徑為d的像素圓,考慮到直徑像素長(zhǎng)度的奇偶差異,對(duì)該固定坐標(biāo)即實(shí)際圓心坐標(biāo)進(jìn)行規(guī)定。
當(dāng)直徑為奇數(shù)時(shí),像素圓的實(shí)際圓心坐標(biāo)為(a,b),與像素圓心坐標(biāo)一致;當(dāng)直徑為偶數(shù)時(shí),像素圓的實(shí)際圓心坐標(biāo)為(a+0.5,b+0.5),與像素圓心坐標(biāo)不同。
下面通過論述像素圓直徑的奇偶差異及裂縫寬度的計(jì)算原理來說明上述規(guī)定的合理性。
數(shù)字圖像中圓的半徑以1像素遞增時(shí),直徑以2像素遞增,故以半徑所表示的像素圓將無法連續(xù)描述直徑,會(huì)造成直徑缺失奇數(shù),而采用直徑表示像素圓時(shí),可以解決該問題。像素圓的像素圓心和實(shí)際圓心示意如圖3所示。當(dāng)直徑為奇數(shù)時(shí),像素圓的圓心為一個(gè)像素,實(shí)際圓心坐標(biāo)恰好位于像素圓的圓心上[見圖3(a)];當(dāng)直徑為偶數(shù)時(shí),單像素的像素圓心無法準(zhǔn)確反映實(shí)際圓心位置,將該像素沿水平軸線方向和豎直軸線方向分別擴(kuò)充1像素,形成一個(gè)4像素的像素矩形,則實(shí)際圓心位于該像素矩形的形心處,等效于將像素坐標(biāo)沿水平軸線方向和豎直軸線方向分別平移“半個(gè)像素”[見圖3(b)]。
圖3 像素圓的像素圓心和實(shí)際圓心示意
由此,便得到像素圓心為(a,b),直徑為d的像素圓方程,如式(2)所示。
當(dāng)d=2n-1,n∈N+時(shí)
(x-a)2+(y-b)2≤(d/2)2
(2)
當(dāng)d=2n,n∈N+時(shí)
(x-a-0.5)2+(y-b-0.5)2≤(d/2)2
(3)
滿足上述方程的像素點(diǎn)集合稱為以(a,b)為像素圓心,直徑為d的像素圓,采用一行三列的矩陣來表示,記為C=[a,b,d]。圖4展示了像素圓直徑d由1像素不斷增大的圖像,可以發(fā)現(xiàn)直徑在不斷增大時(shí),像素圓與實(shí)際圓的差異越來越小。
圖4 不同直徑的像素圓圖像
觀察不同直徑的像素圓圖像效果可以發(fā)現(xiàn),直徑較小時(shí)圖像形態(tài)與圓存在較大差異,其中從1像素到3像素時(shí)的像素圓均為矩形像素,當(dāng)直徑增大至8像素時(shí)有了圓形的雛形,直徑為34像素的像素圓已十分接近圓形。該算法公式簡(jiǎn)潔,計(jì)算量小,生成效果也較好。在實(shí)際檢測(cè)中,一般側(cè)重于有一定寬度的裂縫,且更為關(guān)注裂縫寬度的較大值,因此該像素圓算法作為圓的像素級(jí)生成是合理的。
由裂縫寬度定義可知,求取某處裂縫寬度的關(guān)鍵在于得到該處的最大內(nèi)接圓直徑。采用一種使像素圓直徑由初始值不斷增大進(jìn)而確定寬度像素圓的方法,并將該算法命名為“膨脹圓法”。
裂縫的發(fā)展變化會(huì)導(dǎo)致最大內(nèi)接圓同時(shí)變化,因而裂縫的發(fā)展過程可視為假想填充圓的膨脹過程。由此可知,計(jì)算裂縫寬度像素圓可以參考裂縫的擴(kuò)展過程,通過不斷“膨脹”的方式增加其直徑,直到滿足相切條件,進(jìn)而動(dòng)態(tài)地求得寬度像素圓矩陣C。
若不指定像素圓的初始膨脹圓心,則像素圓的膨脹過程是無序而復(fù)雜的,從而極大地耗費(fèi)計(jì)算機(jī)資源和計(jì)算時(shí)間。參考文中所給裂縫寬度的定義,理論上當(dāng)裂縫恰好被假想圓所填充時(shí),該圓為裂縫的最大內(nèi)接圓,其圓心應(yīng)位于裂縫的骨架線也即中軸線上,裂縫骨架線圖像如圖5所示。因此,不妨將像素圓的初始膨脹圓心定為裂縫骨架線坐標(biāo)集中的一個(gè),每次膨脹計(jì)算時(shí)從骨架線坐標(biāo)矩陣中按一定規(guī)則抽取即可。
圖5 裂縫骨架線圖像
在數(shù)字圖像中的相切情況與一般數(shù)學(xué)意義的相切不同,為保證像素圓的內(nèi)接,在膨脹至寬度像素圓的過程中,像素圓應(yīng)始終位于裂縫邊緣所構(gòu)成的封閉區(qū)域內(nèi)。因此,與裂縫一側(cè)相切的交點(diǎn)可能存在多個(gè)。圖6(b)展示了由圖6(a)初始圓心進(jìn)行膨脹后的結(jié)果,該寬度像素圓與裂縫左側(cè)邊緣有兩個(gè)切點(diǎn),與裂縫右側(cè)邊緣僅有一個(gè)切點(diǎn)。圖7(b)展示了由圖7(a)初始圓心進(jìn)行膨脹后的結(jié)果,該寬度像素圓與裂縫左側(cè)邊緣有3個(gè)切點(diǎn),與裂縫右側(cè)邊緣沒有切點(diǎn),這是因?yàn)檫M(jìn)一步膨脹會(huì)使像素圓超過裂縫區(qū)域。
圖6 兩側(cè)均有切點(diǎn)的寬度像素圓圖像
圖7 僅一側(cè)有切點(diǎn)的寬度像素圓圖像
將裂縫骨架線坐標(biāo)集合的所有坐標(biāo)進(jìn)行膨脹計(jì)算并輸出的過程繁瑣且意義不大,膨脹圓的間距(即疏密程度)會(huì)影響計(jì)算的效率和準(zhǔn)確度。研究的初始膨脹圓心按隨機(jī)原則從裂縫骨架線坐標(biāo)矩陣中抽取,在膨脹結(jié)束后刪除寬度像素圓范圍內(nèi)的骨架線坐標(biāo),可以保證相鄰寬度像素圓之間不存在空隙,從而實(shí)現(xiàn)膨脹圓的疏密度控制。
文中重新給出了裂縫寬度的定義,采用一種使像素圓直徑由初始值不斷增大進(jìn)而確定寬度像素圓的方法,具體流程如下所述。
(1) 對(duì)裂縫二值圖像f(x,y)進(jìn)行骨架提取處理,得到裂縫骨架線及其上各點(diǎn)的坐標(biāo),并將坐標(biāo)值存入骨架線坐標(biāo)矩陣G中[10]。
(2) 從骨架線坐標(biāo)矩陣G中隨機(jī)抽取一組坐標(biāo)(xi,yi)。
(3) 創(chuàng)建與裂縫二值圖f(x,y)相同分辨率的全新圖像g(x,y),令新圖像中每個(gè)像素值均為0,從而使背景為全黑色,隨后以步驟(2)中所抽取的坐標(biāo)為圓心,生成直徑為D(初始值D1=1)的白色像素圓[11]。
(4) 將裂縫二值圖f(x,y)與生成像素圓的圖像g(x,y)進(jìn)行圖像加法運(yùn)算,得到加和圖像m(x,y),并令m(x,y)中大于1的值等于1,使得m(x,y)中仍僅存在0與1[12]。
(5) 將抑制后的加和圖m(x,y)與裂縫二值圖f(x,y)進(jìn)行圖像減法運(yùn)算,得到差值圖像n(x,y)。
(6) 檢索差值圖n(x,y)中的像素值,如果n(x,y)矩陣中的元素全為0,則說明步驟(3)中繪制的白色像素圓未接觸到裂縫邊緣,將直徑D增加1,返回步驟(3),重復(fù)上述步驟;若第n+1次膨脹后n(x,y)矩陣中元素首次出現(xiàn)1,則說明步驟(3)中繪制的直徑為Dn+1的白色實(shí)心圓超出裂縫邊緣,則結(jié)束膨脹,最終膨脹圓直徑取Dn=n,記錄寬度膨脹圓參數(shù)C=(xi,yi,Dn)。
(7) 從骨架線坐標(biāo)矩陣G中刪除該寬度膨脹圓范圍內(nèi)的骨架坐標(biāo)點(diǎn),并判斷此時(shí)矩陣G是否為空矩陣,如果是則結(jié)束循環(huán),否則返回步驟(2)并繼續(xù)循環(huán)計(jì)算。
裂縫圖像可經(jīng)膨脹圓算法進(jìn)行參數(shù)化,使得裂縫由圖像轉(zhuǎn)為具有幾何意義的寬度膨脹圓參數(shù)C,該參數(shù)可以用作裂縫的數(shù)據(jù)進(jìn)行分析運(yùn)算,也可以通過連續(xù)多張圖片所得參數(shù)實(shí)現(xiàn)裂縫監(jiān)測(cè)、房屋評(píng)估等操作。同時(shí),膨脹圓參數(shù)可以用來壓縮儲(chǔ)存空間,將裂縫由圖像格式轉(zhuǎn)為數(shù)據(jù)格式,大大節(jié)約了硬盤空間,提高了效率。最后,裂縫圖像可由膨脹圓參數(shù)進(jìn)行復(fù)原,仍能保留裂縫的主要形態(tài)與特征[13-14],膨脹圓法計(jì)算得到的裂縫圖像如圖8所示,裂紋復(fù)原與原圖重合對(duì)比如圖9所示。
圖8 膨脹圓法計(jì)算得到的裂縫圖像
圖9 裂縫復(fù)原與原圖重合對(duì)比
提出了一套基于數(shù)字圖像處理的裂縫參數(shù)計(jì)算方法,能夠從裂縫二值圖像中提取參數(shù),并將裂縫信息由圖像格式轉(zhuǎn)換為數(shù)據(jù)格式,該方法的優(yōu)勢(shì)如下所述。
(1) 裂縫寬度計(jì)算適用性強(qiáng),應(yīng)用范圍廣,可有效計(jì)算復(fù)雜裂縫與交錯(cuò)裂縫的寬度。
(2) 由于算法與裂縫寬度的定義相吻合,得到寬度的同時(shí)能夠給出寬度坐標(biāo),因而其寬度計(jì)算與定位結(jié)果較為準(zhǔn)確,寬度情況反映較為全面。
(3) 裂縫參數(shù)化后由圖像格式轉(zhuǎn)為數(shù)據(jù)格式,節(jié)約了存儲(chǔ)空間,有利于裂縫的長(zhǎng)期監(jiān)測(cè),必要時(shí)可由寬度膨脹圓參數(shù)進(jìn)行復(fù)原,仍保留了裂縫的主要形態(tài)與特征。
(4) 裂縫的膨脹圓參數(shù)是裂縫的幾何及數(shù)學(xué)信息,可用于裂縫或者結(jié)構(gòu)健康評(píng)估的進(jìn)一步分析運(yùn)算。