航空影像快速勻光處理探討

時(shí)間:2022-07-01 11:15:59

導(dǎo)語(yǔ):航空影像快速勻光處理探討一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

航空影像快速勻光處理探討

摘要:在航空影像勻光處理中應(yīng)用Python語(yǔ)言與Mask方法,可以在保證影像勻光計(jì)算準(zhǔn)確性與便利性的同時(shí)實(shí)現(xiàn)大量數(shù)據(jù)的快速批量處理。因此,研究從Python語(yǔ)言及特點(diǎn)入手,簡(jiǎn)要介紹了OpenCV數(shù)據(jù)庫(kù)及Mask勻光方法,并探討了利用Python語(yǔ)言批量對(duì)航空影像進(jìn)行勻光計(jì)算的作用效果,以期為航空影像勻光計(jì)算效率及準(zhǔn)確度提升提供一定借鑒與參考。

關(guān)鍵詞:Python,OpenCV

數(shù)據(jù)庫(kù),Mask方法,航空影像,勻光隨著我國(guó)城市化進(jìn)程的發(fā)展與地理信息技術(shù)的不斷進(jìn)步,在城市建設(shè)、土地規(guī)劃、農(nóng)林檢測(cè)、生活生產(chǎn)等各個(gè)領(lǐng)域?qū)娇沼跋竦默F(xiàn)勢(shì)性及實(shí)用性的要求越來(lái)越高。像片照度作為判讀地物的關(guān)鍵參數(shù),應(yīng)在航空影像獲取后第一時(shí)間進(jìn)行檢查與處理。在現(xiàn)有航空攝影工作中,通常因?yàn)橛跋瘾@取時(shí)間、天氣狀況、地表反射情況或其他相關(guān)因素影響,極易出現(xiàn)單幅影像內(nèi)部、區(qū)域范圍內(nèi)多幅影像色彩、照度不平衡情況[1],影響后續(xù)航空影像的內(nèi)業(yè)處理(如影像分類解譯、數(shù)字正射影像圖制作、三維模型構(gòu)建等)[2]。由于目前航空攝影工作普遍存在單張影像像幅大、像片數(shù)量多等特點(diǎn),因而解決大量影像的批量快速勻光成為航空影像預(yù)處理的重要內(nèi)容。本研究選取目前單張像片勻光中最常用的Mask方法,通過探討其勻光原理與流程,基于Python語(yǔ)言簡(jiǎn)單高效且擴(kuò)展能力強(qiáng)的特點(diǎn),結(jié)合第三方數(shù)據(jù)庫(kù)OpenCV在圖像分析與處理方面的強(qiáng)大功能模擬實(shí)現(xiàn)利用Mask方法對(duì)航空像片勻光的批量快速處理,為大量航空影像的快速勻光處理提供了新的解決方案。

1Python語(yǔ)言

Python語(yǔ)言是一種解釋型計(jì)算機(jī)程序腳本語(yǔ)言,由GuidovanRossum在1991年創(chuàng)造[3]。相對(duì)于其他計(jì)算機(jī)語(yǔ)言,Python語(yǔ)句結(jié)構(gòu)簡(jiǎn)單、語(yǔ)法定義明確、代碼定義清晰,便于學(xué)習(xí)、閱讀和維護(hù);因?yàn)殚_放源代碼,Python具有豐富且強(qiáng)大的第三方庫(kù),在Linux,Windows等平臺(tái)上兼容性都較好;Python既支持面向過程的編程也支持面向?qū)ο蟮木幊?。在“面向過程”的語(yǔ)言中,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來(lái)的。在“面向?qū)ο蟆钡恼Z(yǔ)言中,程序是由數(shù)據(jù)和功能組合而成的對(duì)象構(gòu)建起來(lái)的。與其他主要的語(yǔ)言相比,Python以一種非常強(qiáng)大又簡(jiǎn)單的方式實(shí)現(xiàn)面向?qū)ο缶幊??;谝陨咸攸c(diǎn)與優(yōu)勢(shì),Python目前在圖像解譯、科學(xué)計(jì)算、數(shù)據(jù)挖掘、人工智能等眾多領(lǐng)域應(yīng)用廣泛[4]。

2OpenCV數(shù)據(jù)庫(kù)

OpenCV(OpenSourceComputerVisionLibrary)于1999年由GaryBradsky在英特爾創(chuàng)立,是一個(gè)基于開源發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺庫(kù),第一個(gè)版本于2000年問世,目前已可以運(yùn)行在Linux,Windows,Android和MacOS操作系統(tǒng)上。它由一系列C函數(shù)和少量C++類構(gòu)成,具有C++,Python,Java和MATLAB接口,有超過500種算法和大約10倍組成或支持這些算法的函數(shù)。OpenCV實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法,已成為計(jì)算機(jī)視覺領(lǐng)域最有力的研究工具[5]。OpenCV由cv(核心函數(shù)庫(kù))、cvaux(輔助函數(shù)庫(kù))、cxcore(數(shù)據(jù)結(jié)構(gòu)與線性代數(shù)庫(kù))、highgui(GUI函數(shù)庫(kù))、ml(機(jī)器學(xué)習(xí)函數(shù)庫(kù))等模塊構(gòu)成,主要用于解決圖像數(shù)據(jù)操作、圖像/視頻的輸入輸出、矩陣/向量數(shù)據(jù)操作及線性代數(shù)運(yùn)算、基本圖像處理、結(jié)構(gòu)分析、目標(biāo)識(shí)別、圖像標(biāo)注等功能。

3Mask勻光算法

Mask勻光法是基于傳統(tǒng)光學(xué)像片的曬印方法而提出的[6]。其原理是選擇一張稱為Mask的密度或色彩隨位置緩慢變化的模糊的透明薄膜作為正片[7],與原始像片(稱為負(fù)片)按輪廓線疊加進(jìn)行曬像獲得一張色彩密度較為均勻的像片,隨后進(jìn)行曬印以增強(qiáng)像片總體反差。Mask勻光法的特點(diǎn)是消減影像中的大反差而增強(qiáng)影像中的小反差,從而使整張影像照度與色彩趨于一致[8]。Mask勻光法常用于單幅影像的勻光處理,具有較強(qiáng)的適應(yīng)性,是目前應(yīng)用最多的勻光方法。Mask勻光法的數(shù)學(xué)模型可表示為:I'(x,y)=Ist(x,y)+Ibg(x,y)(1)其中,I'(x,y)為原始影像;Ist(x,y)為照度均勻的理想影像;Ibg(x,y)為背景影像。通常根據(jù)Mask勻光法獲取亮度均勻的理想影像的方法是將原始影像采用高斯低通濾波方法過濾掉其中的高頻分量即原始影像中亮度變化較為強(qiáng)烈的部分得到背景影像,兩者相減獲得剔除了高頻信息的光照分布均勻的圖像,同時(shí)為了保證圖像細(xì)節(jié)不丟失且勻光前后圖像亮度的一致性[9],將上面模型進(jìn)行如下修改:Ist(x,y)=I'(x,y)-I'(x,y)×G(x,y)+offset(2)其中,G(x,y)為高斯低通濾波器;offset為原始影像灰度均值的偏移量。

4航空影像進(jìn)行勻光處理試驗(yàn)分析

4.1數(shù)據(jù)分析

試驗(yàn)數(shù)據(jù)為山東省某縣級(jí)市地面分辨率為15cm的·741·第47卷第13期2021年7月山西建筑SHANXIARCHITECTUREVol.47No.13Jul.2021SWDC-4航攝儀獲取的影像共1000張,其單張像幅為970Mb,航攝期間,攝區(qū)天氣良好、飛行穩(wěn)定、航攝儀工作正常。但由于航攝區(qū)域有大量易反光地物如建成建筑、河流等,因而存在大量的樓頂及水體反光問題需進(jìn)行勻光處理。

4.2應(yīng)用原理

利用Mask方法進(jìn)行勻光處理的關(guān)鍵是獲取背景影像[10]。背景影像由原始影像經(jīng)高斯低通濾波獲取。由于背景影像為一張亮度隨位置變化的灰度圖,對(duì)影像地物細(xì)節(jié)的要求并不高,為提高處理速度,可對(duì)原始影像進(jìn)行重采樣降低分辨率作為制作背景影像的模板;針對(duì)高斯低通濾波器在圖像頻率譜中的良好應(yīng)用效果,需要對(duì)重采樣影像進(jìn)行傅里葉變換,獲得影像在頻率域中的高斯低通濾波表達(dá)形式H(μ,υ)=e-D2(μ,v)/2σ2,其中,D(μ,v)為頻率域原點(diǎn)到點(diǎn)(μ,v)的距離;σ為高斯模糊半徑,決定了高斯低通濾波器的勻光強(qiáng)度。對(duì)濾波后的影像頻率譜進(jìn)行傅里葉逆變換得到空間域影像;根據(jù)原始影像尺寸對(duì)經(jīng)過低通濾波的低分辨率影像進(jìn)行重采樣獲得與原始影像可疊加的背景影像,將原始影像與背景影像進(jìn)行相減處理,并加上原始影像灰度均值偏移量保證影像細(xì)節(jié)即得到最終的勻光后影像。其處理流程如圖1所示。

4.3功能實(shí)現(xiàn)

利用Python語(yǔ)言的便捷高效特點(diǎn)及OpenCV庫(kù)對(duì)圖像強(qiáng)大的分析處理功能,可以將Mask勻光法批量應(yīng)用于影像的快速勻光處理,以下提供了部分關(guān)鍵步驟的核心代碼:1)影像重采樣功能。Img_0001=cv2.imread(r"D:\TestData\Img0001.tif",0)Img_0001=cv2.resize(Img0001,(int(y/2),int(x/2)))通過OpenCV庫(kù)的cv2.resize()函數(shù)可以實(shí)現(xiàn)圖像不同程度的重采樣功能。2)影像傅里葉變換。Img_f0001=cv2.imread(r"D:\TestData\Img0001.tif",0)dft=cv2.dft(np.float32(Img_f0001),flags=cv2.DFT_COMPLEX_OUTPUT)dft_shift=numpy.fft.fftshift(dft)OpenCV庫(kù)中的cv2.dft()方法接受一個(gè)灰度格式的圖像參數(shù),對(duì)其進(jìn)行頻譜轉(zhuǎn)換,輸出一個(gè)0頻率在圖像左上角的頻譜數(shù)組,為方便濾波分析,利用numpy模塊的fftshift()函數(shù)將其0頻率轉(zhuǎn)換到影像中心位置。3)高斯低通濾波。rows,cols=Img_f0001.shapecrow,ccol=int(rows/2),int(cols/2)mask=numpy.zeros((rows,cols,2),numpy.uint8)mask[crow-20:crow+20,ccol-20:ccol+20]=1f=dft_shift*mask設(shè)置一個(gè)參數(shù)名mask的濾波器,并通過調(diào)整濾波器的尺度確定其勻光效果,最終獲取濾波后的影像頻譜數(shù)組。4)傅里葉逆變換。ishift=numpy.fft.ifftshift(f)iimg=cv2.idft(ishift)類似于傅里葉變換,numpy模塊提供了iffshift()函數(shù),OpenCV庫(kù)提供了cv2.idft()函數(shù)實(shí)現(xiàn)了影像頻譜的傅里葉逆變換。

4.4處理效果及評(píng)價(jià)

1)批量處理速度。為保證對(duì)大量航空影像進(jìn)行批量勻光處理的計(jì)算效率,應(yīng)保證計(jì)算機(jī)硬件的配置要求,試驗(yàn)選取計(jì)算機(jī)硬件為Inter(R)Core(TM)i7-4790k處理器,32GB內(nèi)存,2TB機(jī)械硬盤的處理平臺(tái),通過對(duì)1000張影像進(jìn)行批量勻光處理,總計(jì)用時(shí)約160min,單張?zhí)幚頃r(shí)間約為10s,相對(duì)于利用傳統(tǒng)圖片處理軟件進(jìn)行單張影像勻光所需20s~40s,整體效率提升了2倍~4倍。2)勻光效果。選擇實(shí)驗(yàn)數(shù)據(jù)中的一張?jiān)加跋窦皠蚬夂笥跋襁M(jìn)行比較,如圖2所示。從目視效果看,圖2a)原始影像中由于拍攝時(shí)的光照條件及相機(jī)參數(shù)設(shè)置等原因,水體呈現(xiàn)曝光過度狀態(tài),亮度較高且與周邊的農(nóng)用地反差較大,不利于后期影像的制作與使用;圖2b)是應(yīng)用Mask方法制作的該幅影像的背景影像,可以看到在水體部分明顯的高亮,村莊處白色屋頂反光較強(qiáng)也存在相對(duì)高亮;圖2c)為勻光處理后的影像,可見水體亮度明顯被減弱,水體細(xì)節(jié)得到了加強(qiáng),與周邊地物的關(guān)系更加協(xié)調(diào)。進(jìn)一步將原始影像與勻光后影像進(jìn)行亮度統(tǒng)計(jì)分析得到表1。通過對(duì)影像進(jìn)行分塊量化分析發(fā)現(xiàn),勻光后影像的總體亮度和亮度的離散值較原始影像均有下降,這主要是由該幅影像的下部1/3即水體部分進(jìn)行了大幅的勻光,其他色彩較好區(qū)域并未對(duì)照度進(jìn)行過多干預(yù),勻光尺度與影像的適應(yīng)性較好;各部分平均梯度在勻光前后變化量少,說(shuō)明背景影像經(jīng)過兩次重采樣并未對(duì)原始影像細(xì)節(jié)造成影響,高亮區(qū)域或陰暗區(qū)域的勻光在一定程度上也會(huì)增加影像的細(xì)節(jié)表現(xiàn)。綜合看來(lái)影像總體勻光效果理想。

5結(jié)語(yǔ)

針對(duì)航空影像數(shù)據(jù)量日益增大的問題,本文基于Mask勻光原理,使用Python語(yǔ)言設(shè)計(jì)了一種批量快速勻光算法。經(jīng)過實(shí)驗(yàn)與分析,發(fā)現(xiàn)該算法具有以下優(yōu)點(diǎn):1)處理速度快。相較于單張?zhí)幚硇剩刻幚砟軌蚧谀_本方式完成勻色,效率可提升2倍~4倍。2)勻光效果好。該算法能夠自動(dòng)識(shí)別航空影像亮度的離散程度,重點(diǎn)計(jì)算過亮或過暗區(qū)域的曝光度,不會(huì)對(duì)亮度和色彩較為理想的區(qū)域造成過多的干擾。3)使用成本低、程序開發(fā)易。當(dāng)前基于Python語(yǔ)言和OpenCV數(shù)據(jù)庫(kù)的開放性資源較多,讀者可以根據(jù)本文的思想和方法,靈活設(shè)計(jì)適合自己需求的算法。上述優(yōu)點(diǎn)表明本文設(shè)計(jì)的算法適用于大批量航空影像的快速勻光處理,是一種切實(shí)可行的方法。在今后的研究中,筆者將會(huì)重點(diǎn)對(duì)圖像最優(yōu)分塊策略的自適應(yīng)性方面進(jìn)行研究,以便提高航空影像快速勻光流程的整體效率和勻光效果。

參考文獻(xiàn):

[1]李治江.彩色影像色調(diào)重建的理論與實(shí)踐[D].武漢:武漢大學(xué),2005.

[2]王密,潘?。环N數(shù)字航空影像的勻光方法[J].中國(guó)圖象圖形學(xué)報(bào),2004,9(6):744-748.

[3]肖旻,陳行.基于Python語(yǔ)言編程特點(diǎn)及應(yīng)用之探討[J].電腦知識(shí)與技術(shù),2014(34):8177-8178.

[4]王常衡,李嘉偉,羅欽,等.淺析Python語(yǔ)言及其應(yīng)用前景[J].計(jì)算機(jī)產(chǎn)品與流通,2019(4):148.

[5]劉培軍,馬明棟,王得玉.基于OpenCV圖像處理系統(tǒng)的開發(fā)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2019,29(3):127-131.

[6]李德仁,王密,潘?。鈱W(xué)遙感影像的自動(dòng)勻光處理及應(yīng)用[J].武漢大學(xué)學(xué)報(bào)(信息科學(xué)版),2006,31(9):753-756.

[7]潘?。詣?dòng)化的航空影像色彩一致性處理及接縫線網(wǎng)絡(luò)生成方法研究[D].武漢:武漢大學(xué),2008

[8]毛玉龍,郭海京.基于改進(jìn)Mask掩膜的航空影像勻光研究[J].地理空間信息,2015(3):133-134.

[9]李鵬程,王棟,朱積國(guó).改進(jìn)的自適應(yīng)Mask勻光算法[J].遙感信息,2018(4):86-90.

[10]姚芳,萬(wàn)幼川,胡晗.基于Mask原理的改進(jìn)勻光算法研究[J].遙感信息,2013,28(3):8-13.

作者:邢耀文 李天鶴 單位:山東省國(guó)土測(cè)繪院