王 悅,安英玉,王文玲,鞠 洋
(黑龍江省人民政府人工降雨辦公室,黑龍江 哈爾濱 150030)
云在影響全球水循環(huán)和熱平衡的過(guò)程當(dāng)中扮演著十分重要的角色。 隨著社會(huì)的日益發(fā)展, 云對(duì)航空、軍事、生活的影響也越來(lái)越受到大家關(guān)注。
近些年,由于電荷耦合元件等硬件技術(shù)的飛速發(fā)展,以及數(shù)字圖像處理技術(shù)的日益完善,地基測(cè)云儀器的精度不斷提升。 目前, 全天空成像儀(TSI,Total Sky Imager) 是國(guó)際上具有典型意義的地基測(cè)云儀器,可以實(shí)現(xiàn)白天全天空云量的持續(xù)自動(dòng)監(jiān)測(cè),時(shí)空分辨率較高,得到的云量計(jì)算結(jié)果更精確。 但在進(jìn)行云圖處理時(shí)會(huì)出現(xiàn)多種遮擋的情況, 因此在進(jìn)行云圖解算和研究之前需要對(duì)觀測(cè)數(shù)據(jù)進(jìn)行預(yù)處理[1]。 本文就云圖的預(yù)處理的方法進(jìn)行研究, 剔除非云圖的成像, 對(duì)提取云區(qū)的圖像及云圖的自動(dòng)識(shí)別具有重要意義。
利用網(wǎng)站上下載大量的云圖, 作為本次研究過(guò)程中的云圖來(lái)源。 實(shí)驗(yàn)中所用的云圖是由美國(guó)Yankee 環(huán)境系統(tǒng)公司開(kāi)發(fā)研制出的總天空成像儀TSI-880 拍攝的,照片像素為352 x 288/24bit JPEG。
首先利用Radon 變換檢測(cè)直線和連通域填充方法剔除遮陽(yáng)桿對(duì)云區(qū)識(shí)別的干擾, 防止由于遮陽(yáng)桿對(duì)太陽(yáng)的反射, 在識(shí)別時(shí)將那部分亮點(diǎn)區(qū)域誤認(rèn)為是云區(qū), 使之后提取云區(qū)的時(shí)候出現(xiàn)云區(qū)明顯比實(shí)際多的誤差效果。 此外, 地物屬于云圖上多余的部分,而且部分區(qū)域和云區(qū)顏色十分接近,也是造成云區(qū)識(shí)別的一大重要干擾, 所以第二步運(yùn)用模板替換的方法剔除地物的干擾。
2.2.1 剔除遮陽(yáng)桿影響的方法
大多數(shù)沒(méi)有太陽(yáng)光影響的TSI 云圖,因?yàn)檎陉?yáng)桿在云圖中表現(xiàn)為黑色與白色的云區(qū)差別比較明顯,在提取云區(qū)時(shí)黑色的遮陽(yáng)桿和藍(lán)色的天空會(huì)直接一起忽略。 然而在極少情況下,利用TSI 獲取的云圖在遮陽(yáng)桿方面干擾太大, 若不進(jìn)行剔除, 提取出來(lái)的云區(qū)會(huì)存在比較嚴(yán)重的錯(cuò)誤。 因此選取合適的方法來(lái)剔除遮陽(yáng)桿的影響十分有必要。
剔除遮陽(yáng)桿的影響,主要采取以下兩種方法,一是Radon 變換檢測(cè)直線法,二是連通域填充法[2]。 首先運(yùn)用Radon 變換檢測(cè)直線的方法, 檢測(cè)出來(lái)遮陽(yáng)桿在TSI 云圖中的位置, 然后利用連通域填充的方法,將原圖中的遮陽(yáng)桿所在位置進(jìn)行填充,得到的即是剔除了遮陽(yáng)桿對(duì)太陽(yáng)照射影響。
2.2.1.1 Radon 變換檢測(cè)直線方法
Radon 變換在二維空間可以用如下公式表示:
式中,D 為整個(gè)圖像xy 平面;f(x,y)為在圖像點(diǎn)(x,y)處的灰度;ρ 為坐標(biāo)原點(diǎn)到直線的距離;θ 為距離與x 軸的夾角;δ 為Dirac 函數(shù)。 它使f(x,y)沿直線ρ=xcosθ+ysinθ 進(jìn)行積分。 如下圖1 所示。
圖1 Radon 變換定義示意圖
通過(guò)Radon 變換的原則,由圖2 可以看出,在原圖2(a)中有5 條直線,分別對(duì)應(yīng)變換域圖2(b)中5個(gè)亮點(diǎn),坐標(biāo)(ρ,θ,R)分別為:(7,111°,34),(11,111°,29),(-26,90°,19),(-10,81°,19),(-20,0°,15)。 每個(gè)亮點(diǎn)代表一條直線,由已知(ρ,θ)根據(jù)公式ρ=xcosθ+ysinθ 做出結(jié)果如圖2 (c)。 由于沒(méi)有起點(diǎn)坐標(biāo)信息,5條直線橫跨整幅圖像, 不能將線段精確定位, 這是Radon 變換的缺陷[3]。 圖2(d)、(e)、(f)分別為Radon 變換在相交折線段中的檢測(cè)過(guò)程。
圖2 Radon 變換直線檢測(cè)示例(a)原圖1 (b)RT 變換域(c)結(jié)果(d)原圖2 (e)RT 變換域(f)結(jié)果
2.2.1.2 連通域填充方法
傳統(tǒng)的連通域填充算法主要分為兩種, 一種是掃描線算法, 該算法是通過(guò)確定橫跨區(qū)域的掃描線的覆蓋間隔填充的;一種是種子填充算法,即由確定的位置進(jìn)行填充至指定的邊界[3]。
掃描線算法是按照掃描線的順序, 計(jì)算掃描線與多邊形的相交區(qū)間, 再用顏色顯示這些區(qū)間的象素完成填充。 這些區(qū)間的端點(diǎn)是掃描線與多邊形邊界線的交點(diǎn), 可以通過(guò)計(jì)算來(lái)獲得要完成這個(gè)掃描的轉(zhuǎn)換過(guò)程。 對(duì)于一條掃描線填充過(guò)程,可以分為四個(gè)步驟,即求交、排序、配對(duì)和填充。 求交是將多邊形每個(gè)邊和掃描線的交點(diǎn)計(jì)算出來(lái)。 排序是依據(jù)X 坐標(biāo)遞增順序?qū)θ〉玫慕稽c(diǎn)來(lái)排序。 配對(duì)是利用奇偶配對(duì)求出掃描線與多邊形的相交區(qū)間。 填充就是要對(duì)各個(gè)相交區(qū)間進(jìn)行填色。
種子填充算法又稱(chēng)為邊界填充算法。 先給定一個(gè)多邊形區(qū)域內(nèi)的種子點(diǎn)(x,y),從該點(diǎn)開(kāi)始由內(nèi)向外找到區(qū)域內(nèi)的所有像素, 用給定的顏色畫(huà)點(diǎn)直到邊界為止。 種子填充算法通常采用八向連通與四向連通2 類(lèi)算法。 八向連通算法是利用右下、左下、右上、左上、下、上、右、左8 個(gè)方向的移動(dòng)到達(dá)區(qū)域中的任意像素點(diǎn); 四向連通算法是由區(qū)域中的某點(diǎn)開(kāi)始,利用右、左、下、上4 個(gè)方向的移動(dòng)達(dá)到任意一個(gè)像素點(diǎn)。
2.2.2 消除其他干擾的方法
2.2.2.1 模板替換方法
在全天空成像儀的云圖中主要有遮陽(yáng)桿, 晴空和云區(qū), 但是在云圖的周?chē)€有部分地物雜波和鏡面之外的多余部分(即地物)存在(圖3),因此在消除其他干擾的這一方面, 本論文主要研究的是消除地物干擾的影響。 由于需要的僅僅只是云圖中間含有鏡面的區(qū)域,所以在處理多余部分時(shí),直接運(yùn)用了模板進(jìn)行遮蓋處理, 模板如圖4 所示, 黑色為遮蓋部分,白色為非遮蓋部分及本文所需的云圖區(qū)域,通過(guò)模板套用可直接將云圖中的多余部分剔除掉。
圖3 一般云圖
圖4 模板
2.2.2.2 提取灰度值方法
除了地物干擾外, 云的邊緣還可能存在部分雜波。 由于邊緣雜波顏色偏暗,比較容易和白色的云區(qū)區(qū)分出來(lái), 所以在處理邊緣雜波時(shí)運(yùn)用了提取灰度值的方法。
在剔除遮陽(yáng)桿的過(guò)程中, 首先運(yùn)用Radon 變換檢測(cè)直線方法檢測(cè)出云圖中的遮陽(yáng)桿邊緣如圖5(a),然后運(yùn)用檢測(cè)直線方法檢測(cè)出遮陽(yáng)桿的兩條邊線,如下圖5(b)。由于檢測(cè)出來(lái)的遮陽(yáng)桿兩條直線并不是理想的平行線,因此在進(jìn)行仿真實(shí)驗(yàn)時(shí),將需要得到的直線設(shè)置了斜率之差<5°,和兩條直線之間距離在25-40 的像素。 這樣就可以得到一組平行線,可認(rèn)為是遮陽(yáng)桿兩側(cè)的邊緣線如圖5(c)。
圖5 Radon 變換檢測(cè)直線實(shí)現(xiàn)過(guò)程(a)邊緣檢測(cè) (b)檢測(cè)直線(c)確定遮陽(yáng)桿邊緣所在直線 (d)將原圖形按照兩條平行線切割
在獲得了遮陽(yáng)桿的邊緣直線后, 將原圖形按照這兩條直線為邊界進(jìn)行切割, 然后將直線兩側(cè)分別進(jìn)行邏輯化處理,即是以分割直線為界,一邊為邏輯1,一邊為邏輯0,表現(xiàn)為黑白分明的兩兩交集,然后將其組合即可以得到圖5(d)中的圖1-2,圖5(d)中1-2 的作用是將遮陽(yáng)桿所在的全部延伸區(qū)域都提取出來(lái),最后填充出遮陽(yáng)桿。
在圖5(c)中過(guò)檢測(cè)出的兩條平行線做過(guò)中心的垂線,將圖5(d)中的1-2 區(qū)域顯現(xiàn)均分為兩份,這樣就完成了對(duì)遮陽(yáng)桿所在平行區(qū)域的兩分。 再運(yùn)用連通域填充的方法將垂直線兩側(cè)中所有像素點(diǎn)之和較小的那一份進(jìn)行填充,確定為遮陽(yáng)桿。
通過(guò)以上兩種方法的結(jié)合使用, 可以消除遮陽(yáng)桿對(duì)2500 幅云圖的提取影響,對(duì)比于前人研究提取云區(qū)的各種效果上和普遍適用性上進(jìn)步很多。 如圖7,為2017 年8 月21 日的消除遮陽(yáng)桿前后效果對(duì)比圖, 可以明顯看到該方法對(duì)云圖中遮陽(yáng)桿具有較好的消除效果。
圖7 消除遮陽(yáng)桿前后效果對(duì)比(a)遮陽(yáng)桿干擾較大的云圖(b)不進(jìn)行處理后提取的云區(qū) (c)處理后提取的云區(qū)
分別采用模板替換法和提取灰度值的方法對(duì)云圖中的地物干擾、邊緣雜波進(jìn)行消除,進(jìn)而將云區(qū)提取出來(lái)。 具體例子如下:
通過(guò)以上兩種方法的結(jié)合使用, 從圖8 中可以看出,該方法對(duì)云圖中地物干擾、邊緣雜波干擾具有較好的消除效果。
圖8 消除遮陽(yáng)桿和其他干擾的效果對(duì)比(a)云圖原圖(b)消除遮陽(yáng)桿和其他干擾的云圖
本文介紹了TSI 云圖預(yù)處理的方法,首先運(yùn)用了Radon 變換檢測(cè)直線和連通域填充方法,消除了遮陽(yáng)桿的影響,實(shí)現(xiàn)了剔除原圖上的亮斑部分;然后運(yùn)用了模板替換的方法,去掉了TSI 云圖上旋轉(zhuǎn)鏡面外部的地物雜波干擾。 通過(guò)對(duì)比分析表明,以上對(duì)云圖的處理方法有較好的識(shí)別計(jì)算效果,對(duì)于所有的TSI 云圖均適用。