程處理步驟流程圖:
[0205] 圖3為直線檢索處理步驟流程圖;
[0206] 圖4為像素點(diǎn)P的8鄰像素 W及梯度方向角的示意圖;
[0207] 圖5為兩條直線Ll、L2分別與Y軸的夾角示意圖;
[020引圖6為0 = 0或B=JT的直線;
[0209] 圖7為〇<9<~的直線;
[0210] 圖8為0二^的直線;
[0211]圖9為I < 6 < I的直線;
[0212]圖10為9= 勺直線;
[0213] 圖11為;< 6 <孚的直線; 2 4.
[0214] 圖12為0 = ^的直線;
[0215]圖13為孕< 6 <壓的直線; 4
[0216] 圖14為兩條直線交叉情況下的圖示;
[0217] 圖15為直線形成時(shí)像素連接方式示意圖;
[0218] 圖16為At為單像素時(shí)與Aw的位置關(guān)系示意圖;
[0219] 圖17為At為像素組時(shí)與Aw的位置關(guān)系示意圖;
[0220] 圖18為數(shù)組AL中直線的起點(diǎn)和終點(diǎn)示意圖;
[0221 ]圖19為間斷直線的交點(diǎn)S種情況示意圖;
[0222] 圖20為S種直線交叉情況的角分裂示意圖;
[0223] 圖21為角方向示意圖;
[0224] 圖22為最典型的有3類角點(diǎn)歸并情況示意圖;
[0225] 圖23為凸型建筑物的角點(diǎn)分布及角方向示意圖;
[0226] 圖24為樣本圖像經(jīng)過本發(fā)明方法步驟2)高斯濾波處理后示意圖;
[0227] 圖25為樣本圖像經(jīng)過本發(fā)明方法步驟3)邊緣提取處理后的示意圖;
[0228] 圖26為樣本圖像經(jīng)過本發(fā)明方法步驟6)角點(diǎn)提取處理后的示意圖。
【具體實(shí)施方式】
[0229] 本發(fā)明提供了一種遙感影像中的建筑物快速提取方法,具體流程如圖1所示,下面 提供一具體實(shí)施例:
[0230] 步驟1 )、讀取遙感影像,提取灰度圖像;
[0231] 遙感圖像中每個(gè)像素點(diǎn)的色彩由R、G、B =個(gè)分量共同決定,P(r,g,b)代表遙感圖 像中的一像素點(diǎn),其中r代表該像素點(diǎn)的R分量的值,g代表該像素點(diǎn)的G分量的值,b代表該 像素點(diǎn)的B分量的值,每個(gè)分量在內(nèi)存所占的位數(shù)共同決定了圖像深度,即每個(gè)像素點(diǎn)所占 的字節(jié)數(shù);W常見的24位深度彩色RGB圖來說,其=個(gè)分量各占1個(gè)字節(jié),運(yùn)樣每個(gè)分量取值 范圍為[0,255],令H(P)為灰度函數(shù),其值表示像素點(diǎn)P(r,g,b)的灰度值,灰度函數(shù)H(P)的 計(jì)算方法如下:
[0232] H(P)=O.3r+0.59g+0.Ilb 式(1)
[0233] 用式(1)按照從左到右、從上到下的順序依次掃描遙感圖像中的每個(gè)像素點(diǎn),得到 每個(gè)像素點(diǎn)的灰度值,按照式(1)掃描時(shí)同樣的順序組成第一灰度圖像;
[0234] 步驟2)、使用高斯濾波對(duì)第一灰度圖像進(jìn)行降噪處理;
[0235] 噪聲是由于拍攝成像環(huán)境、設(shè)備、天氣等隨機(jī)因素造成;可W通過高斯濾波減弱其 對(duì)原圖的影響;
[0236] 高斯濾波是一種線性平滑濾波,適用于消除高斯噪聲,廣泛應(yīng)用于圖像處理的降 噪過程;
[0237] 大小為(2k+l)X(2k+l)的高斯模板U(x,y)為:
[023引
[0239] 其中,k為正整數(shù)且k>l,代表高斯模板的大小;x、y分別代表高斯模板中元素的橫 坐標(biāo)和縱坐標(biāo);O > 0,為第一灰度圖像的平滑程度參數(shù).
[0240] 高斯濾波的具體操作是:用一個(gè)由式(2)計(jì)算出的高斯模板(或稱模板、卷積、掩 模)按照從左至右、從上到下的順序依次掃描第一灰度圖像中的每一個(gè)像素,用高斯模板確 定的鄰域內(nèi)像素的加權(quán)平均灰度值去替代高斯模板中屯、像素點(diǎn)的灰度值;
[0241] 第一灰度圖像中,除左、上、右、下四條寬度為一像素的邊緣外任一像素點(diǎn)P點(diǎn)的8 鄰像素,即緊鄰像素點(diǎn)P的左上、上、右上、左、右、左下、下、右下8個(gè)方向上的像素;
[0242] 令k=l,根據(jù)式(2)輸入闊值〇計(jì)算得出大小為3X3的高斯模板U(x,y),該高斯模 板U(X,y)中9個(gè)元素的模板值分別為1111、1112、1]13、1]14、111日、1]16、1]17、1]18、1]19;如矩陣1所示的一大小為3 X 3的高斯模板:
[0243]
[0244] 矩陣 1
[0245] 矩陣2中9個(gè)元素的模板值分別為1、2、1、2、4、2、1、2、1;
[0246] 在對(duì)第一灰度圖像做濾波時(shí),高斯模板的中屯、點(diǎn)(即值為4的位置)對(duì)應(yīng)的是第一 灰度圖像中的像素點(diǎn)P;
[0247] 第一灰度圖像中,除左、上、右、下四條寬度為一像素的邊緣外任一像素點(diǎn)P點(diǎn)的8 鄰像素,即緊鄰像素點(diǎn)P的左上、上、右上、左、右、左下、下、右下8個(gè)方向上的像素,見圖4,像 素點(diǎn)P與8鄰像素的灰度值按照第一灰度圖像中從左至右、從上到下的順序依次為gl、g2、g3、 g4、g日、g6、g7、g8、g9 ;像素點(diǎn)P位于g日位置,gl、g2、g3、g4、g6、g7、g8、g9位置分別為P點(diǎn)的8鄰像素;
[0248] 用該高斯模板U(x,y)按照從左到右、從上到下的順序依次掃描第一灰度圖像中除 左、上、右、下四條寬度為一像素的邊緣外的每一個(gè)像素 P,各像素點(diǎn)P由高斯模板U(x,y)做 高斯濾波的方法見式(3);
[0249]
式(3)
[0250] 所述的化表示W(wǎng)高斯模板U(m,n)做高斯濾波后所到的像素點(diǎn)P的灰度值;S為中間 變量,表示像素點(diǎn)P和其8鄰像素的灰度值的總和;
[0251] 按照式(3)依從左到右、從上到下的順序?qū)Φ谝换叶葓D像中像素點(diǎn)P進(jìn)行依次掃描 時(shí),對(duì)當(dāng)前所掃描的像素點(diǎn)P由高斯模板U(x,y)所確定的鄰域內(nèi)所有像素(9個(gè)像素)的加權(quán) 平均灰度值替代當(dāng)前像素點(diǎn)P的灰度值,掃描結(jié)束后得到第二灰度圖像;
[0252] 高斯濾波相當(dāng)于對(duì)圖像做平滑操作,使單獨(dú)的一個(gè)像素噪聲在經(jīng)過高斯濾波平滑 處理后的圖像上變得幾乎沒有影響;
[0253] 步驟3)、使用基于化SU的自適應(yīng)化nny算法提取第二灰度圖像中的邊緣,如圖2所 示流程圖,主要可分為四個(gè)步驟:
[0254] 31):用一階偏導(dǎo)的有限差分來計(jì)算梯度的幅值和方向;
[0巧日]采用化nny算法,其中所采用的卷積模板表示為式(4)
[0 巧 6]
式(4)
[0257]其中Mi、M2分別為第二灰度圖像x、y軸方向上的一階偏導(dǎo)數(shù)矩陣,依照所述一階偏 導(dǎo)數(shù)矩陣Mi、M2按照從左到右、從上到下的順序依次掃描第二灰度圖像中的每一個(gè)像素點(diǎn), 得到每個(gè)像素點(diǎn)X、y方向上的梯度幅值Gx、Gy:
[025引 Gx=[f(x+l,y)-f(x,y)+f(x+l,y+l)-f(x,y+l)]/2 式巧)
[0259] Gy=[f(x,y)-f(x,y+l)+f(x+l,y)-f(x+l,y+l)]/2 式(6)
[0260] x、y表示所處理像素點(diǎn)的橫坐標(biāo)、縱坐標(biāo)值,f(x,y)表示第二灰度圖像中坐標(biāo)為 (x,y)的像素點(diǎn)的灰度值,該像素點(diǎn)的梯度幅值G(x,y)和方向角0(x,y)由式(7)和式(8)處 理得到;
[0261] 式(7)
[0%2] 式(8)
[0263] 由式(7)和式(8)對(duì)第二灰度圖像中每一個(gè)像素點(diǎn)按照從左到右、從上到下的順序 依次掃描,得到第二灰度圖像中每一個(gè)像素點(diǎn)梯度幅值和方向角;
[0264] 32):非極大值抑制;
[0265] 經(jīng)過上述步驟31)的處理,得到了每個(gè)像素的G(x,y)和方向角目(x,y),由方向角0 (x,y)即可得到梯度方向a,梯度方向a如圖4所示,方向角0(x,y)表示一個(gè)角度、度數(shù),而梯 度方向a是一個(gè)向量,起點(diǎn)為g5終點(diǎn)為Gp或Gn, Gp表示梯度方向上前一個(gè)像素的梯度幅值,Gn 表示梯度方向上后一個(gè)像素的梯度幅值;
[0266] 為了得到最真實(shí)的邊緣,須保留每個(gè)像素點(diǎn)在其梯度方向上的極大值,而刪掉當(dāng) 前像素點(diǎn)梯度方向上的其他值,對(duì)第二灰度圖像中每個(gè)像素點(diǎn)按照從左到右、從上到下的 順序進(jìn)行非極大值抑制,即處理得到第=灰度圖像,第=灰度圖像顯示了遙感影像中建筑 物影像的邊緣,非極大值抑制的具體處理方法如下;
[0267] 判斷是否是極大值,需要根據(jù)當(dāng)前掃描像素點(diǎn)梯度方向所在的區(qū)間,在X和y軸方 向分別進(jìn)行插值計(jì)算,然后再進(jìn)行比較,W找到最大值,梯度方向所在的區(qū)間指的是梯度方 向a所在的角度范圍,插值是為了更合理地判斷當(dāng)前像素點(diǎn)的梯度方向:
時(shí),令 ^中間變量;
[0269]
f,令
[0272] 其中,g5為當(dāng)前處理像素的梯度幅值,gn(l含n含4,6含n含9)表示8鄰像素的梯度幅 值,Gp表示梯度方向上前一個(gè)像素的梯度幅值,Gn表示梯度方向上后一個(gè)像素的梯度幅值;
[0273] 當(dāng)梯度方向a的值在上述相應(yīng)的區(qū)間內(nèi)時(shí),當(dāng)且僅當(dāng)當(dāng)前所處理像素的梯度幅值 邑5大于前述①~④中各插值方法計(jì)算出的Gp和Gn時(shí),g5為極大值,也就是邊緣點(diǎn);
[0274] 33)、計(jì)算最優(yōu)高低闊值
[0275] 本步驟采用了化nny算法中一種叫雙闊值的技術(shù),即設(shè)定一個(gè)高闊值和低闊值,圖 像中的像素點(diǎn)的梯度值如果大于高闊值則認(rèn)為必然是邊緣(真邊緣),如果小于低闊值,貝U 認(rèn)為必然不是邊緣點(diǎn);處于低闊值和高闊值之間的像素點(diǎn)是潛在的邊緣點(diǎn)(假邊緣),需要 在后面進(jìn)行輪廓跟蹤時(shí)進(jìn)行取舍;
[0276] 計(jì)算最優(yōu)高低闊值:
[0277] 讀取第=灰度圖像的寬度為W像素、高度為H像素,則第=灰度圖像中的像素總數(shù)N 為:
[027引 N=WXH 式(9)
[0279] i皆笛=灰度圖像中每一像素的梯度幅值G ( X,y )的范圍為[0,G ],
,讀取每一像素的梯度幅值G(x,y),找梯度幅值等于確定值為i的像素, 得到梯度幅值等于i的像素個(gè)數(shù)為Ni個(gè),ie[0,G];設(shè)Tl為最優(yōu)低闊值,T2為最優(yōu)高闊值;
[0280] 非邊緣點(diǎn)總個(gè)數(shù)Ni(Ti,T2)為:
[0281]
式(10)
[0282] 其中,Ni是梯度幅值等于i的像素的個(gè)數(shù);
[0283] 非邊緣點(diǎn)所占比例值CO 1 (Tl,T2)為:
[0284]
式(11)
[0285] 潛在邊緣點(diǎn)總個(gè)數(shù)化(Tl,T2)為:
[0286]
式(12)
[028引 式(13)
[0287]潛在邊緣點(diǎn)所占比例值CO 2(Tl,T2)為:
[0289] )為;
[0290] (14)
[0291] (Ti,T2)為:
[0292] 式(15)
[0293] 非邊緣點(diǎn)的平均梯度m(Ti,T2)、潛在邊緣點(diǎn)的平均梯度化(Tl, T2)和真邊緣點(diǎn)的平 均梯度化(Tl, T2)如下:
[0294]
式(16) [02M]第S灰度圖像總的梯度均值iis為:
[0 巧 6] Ws = Wi 化,T2)?i(Ti,T2)+化(Ti,T2)?2(Ti,T2)+ii3(Ti,T2)?3(Ti,T2)式(17)
[0297]非邊緣點(diǎn)、潛在邊緣點(diǎn)和真邊緣點(diǎn)運(yùn)=類像素的類間方差O2 (Tl,T2)為:
[0 巧引 02(Ti,T2)=?i(Ti,T2)(yi(Ti,T2)-ys)2+?2(Ti,T2)(y2(Ti,T2)-ys)2+?3(Ti,T2)(ii3 (Tl,T2)-iiS)2
[0299] 式(18)
[0300] 使類間方差〇2(Ti,T2)在[1,G-1]范圍內(nèi)依次取值,當(dāng)類間方差〇2(Ti,T2)為最大值 時(shí),此時(shí)的Ti、T2的值即為最優(yōu)低闊值Tl和最優(yōu)高闊值T2;
[0301] 34):用雙闊值算法檢測(cè)和邊緣連接;
[0302] 根據(jù)上一步33)中得到的最優(yōu)低闊值Tl和最優(yōu)高闊值T2對(duì)第=灰度圖像圖像進(jìn)行 過濾,像素點(diǎn)的梯度幅值如果大于高闊值則認(rèn)為當(dāng)前像素點(diǎn)必然是邊緣點(diǎn),即真邊緣點(diǎn),如 果當(dāng)前處理像素點(diǎn)的梯度幅值小于低闊值,則認(rèn)為當(dāng)前像素點(diǎn)必然不是邊緣點(diǎn);處于低闊 值和高闊值之間的像素點(diǎn)是潛在的邊緣點(diǎn),即假邊緣;將第=灰度圖像根據(jù)高闊值過濾得 到的邊緣點(diǎn)鏈接成輪廓,當(dāng)?shù)竭_(dá)輪廓的端點(diǎn)時(shí),在端點(diǎn)的8鄰點(diǎn)尋找潛在的邊緣點(diǎn),再根據(jù) 所找到的潛在的邊緣點(diǎn),在其8鄰點(diǎn)中循環(huán)處理收集新的邊緣點(diǎn),如此處理整個(gè)第=灰度圖 像,直至邊緣閉合,得到第四灰度圖像;
[0303] 步驟4)、基于Freeman鏈碼的直線提取方法,見圖3所示流程圖:
[0304] 設(shè)單條直線L與巧由的夾角0范圍為0~31,如圖5,直線Ll與巧由的夾角為01,直線L2 與Y軸的夾角為02;
[0305] 按夾角0的范圍劃分共有八種情況的直線^
[0306] ① 0 = 0 或 0=jT;見圖 6;
[0307] ②〇<掙 < 手;見圖7;
[030引③6二J ;見圖8;
[0309] ④一<0< 奮;見圖9;
[0310] ⑤身;見圖 10; '巧 3況-<