吳川平,黃文愷,伍馮潔,張雯雯,梁俊杰(.廣州大學數學與信息科學學院,廣州50006;.廣州大學實驗中心,廣州50006;.廣州大學機械與電氣工程學院,廣州50006)
基于OpenCV的圖像預處理技術在無人機視頻的應用
吳川平1,黃文愷2,伍馮潔2,張雯雯3,梁俊杰3
(1.廣州大學數學與信息科學學院,廣州510006;2.廣州大學實驗中心,廣州510006;3.廣州大學機械與電氣工程學院,廣州510006)
OpenCV(Open Source Computer Vision)是一種用于數字圖像處理和計算機視覺的開放源代碼函數庫。從圖像處理在無人機視頻的應用的角度出發,提出一種預處理方法,將圖像處理的高斯濾波算法、雙邊平滑算法、圖像增益數以及圖像融合操作應用于無人機拍攝視頻中。通過對視頻幀圖像的操作,解決無人機視頻圖像出現的抖動、清晰度低等問題,同時有效降低環境光線及噪聲干擾的影響。
無人機;數字圖像預處理;OpenCV
隨著計算機技術的高速發展,數字圖像技術已經在通信、監控、生物、醫學、雷達、航空等方面發揮著重要作用。通信、電子以及計算機技術也帶來了無人機領域的蓬勃發展,然而在無人機擴展到各個領域的應用過程中,也帶來了新的問題與思考。例如無人機的重要功能之一的拍攝功能,由于無人機拍攝必然會產生抖動,畫面也會由于環境因素出現模糊不清、噪聲污染、電子波干擾、環境與目標難以區分等問題。
目前市面上出現了很多種解決方案來改善無人機拍攝的這些不足,但普遍通過硬件方式來實現。本文將采用軟件方式直接處理無人機獲取的視頻畫面,以Windows 7作為操作系統,C++作為編程語言,Microsoft Visual Studio 2010作為編程軟件,并且配置可調用OpenCV庫函數的Path路徑,以無人機上采集到的視頻圖像作為處理材料,結合計算機本身的攝像頭采集實驗所需圖片。通過實驗驗證,最終得到不僅適合普通視頻源使用,而且適用于無人機視頻采集的圖像預處理系統。
無人機視頻預處理系統主要由無人機視頻獲取、程序讀入視頻文件、幀圖像初始化、圖像濾波處理、圖像平滑處理、圖像增益處理和圖像融合操作七個部分組成,系統框圖如圖1所示。

圖1 系統結構框圖
系統首先對實時采集到的無人機視頻圖像進行初始化,其次,對完成初始化的幀圖像分別應用高斯濾波算法、雙邊平滑算法、5領域像素平均算法及圖像融合算法進行圖像的濾波、平滑、增益及融合處理,從而輸出較高質量的圖像序列。
(1)高斯濾波算法
本文采用高斯濾波算法實現圖像的濾波功能,函數聲明為:
void GaussianBlur(InputArray src1,OutputArray dst1,Size ksize,double sigmaX,double sigmaY=0,int borderType=BORDER_DEFAULT)
其中,src1為輸入圖像,dst1為輸出圖像,Ksize為濾波器模板大小,sigmaX、sigmaY分別為橫向和豎向的濾波系數,borderType為邊緣點插值類型。
高斯濾波是對原圖像的每一個像素進行濾波,對應像素濾波后的值是根據其相鄰像素(包括該像素本身值)與一個濾波器模板相乘,也就是說只需要弄清楚高斯濾波器模板即可。由于本文處理的是二維幀圖像,為了簡化,sigmaX和sigmaY取相等,得到模板大小ksize如式(1):

其中,i和j分別代表行和列,ksize的寬和高必須是奇數,α、β的和為1。
(2)雙邊平滑算法
雙邊濾波是一種簡單、邊緣保持平滑的非迭代方案,算法公式如式(2):

結合域和值域過濾將被表示為雙邊濾波[1],在平滑區域,一個小的鄰域的像素值是彼此相似的,雙邊濾波器的實現過程實際上是一個標準的域濾波,即平均掉小、弱相關的像素值之間的差異所造成的噪音[2~3]。除了雙邊平滑算法外,還可以采用高斯平滑等算法來實現圖像的平滑處理[4]。
(3)5領域像素平均算法
本文采用四鄰域方法來實現圖像的增益操作,對當前像素點p(i,j),經過增益處理后的像素點像素值如式(3):

其中,fp(i,j)為當前像素點像素值,fp(i,j-1)與fp(i,j+1)分別為前一和后一像素點像素值,fp(i-1,j)與fp(i+1,j)分別為上一點和下一點像素點像素值。
(4)圖像融合操作
關于圖像融合的算法很多[5~6],在實際應用中可根據需要選擇合適算法,本文采用addWeighted函數,將平滑處理和增益處理后圖像相融合,通過給平滑處理的圖像和增益處理的圖像賦予不同的權值,從而得到不同重點效果的圖像。
本文對無人機采集到的實時圖像序列通過遍歷圖像像素點的方式來實現圖像濾波、平滑、增益及融合操作。為了減少對硬件資源的消耗及提高圖像處理速度,將實時圖像序列儲存類型為Mat,采用指針儲存圖像的形式,然后利用高斯濾波、雙邊平滑、5領域像素平均算法及圖像融合算法來進行處理,算法的具體實現步驟如下:
①建立一個VideoCapture結構,導入無人機視頻;
②應用capture.set設置開始幀和結束幀,為了保證視頻播放的流暢性,在幀與幀之間需適當增加時延,時延值與幀率有關,幀率可通過函數capture.get()獲得;
③調用OpenCV高斯濾波函數GaussianBlur(),雙邊平滑函數bilateralFilter(),增益函數sharp()以及融合函數addWeighted();
④調用namedWindow("")建立窗口以及imshow()函數顯示幀圖像,加上一定的延時即可得到流暢的經過處理的視頻圖像。
⑤循環步驟①到步驟④,即可連續處理無人機采集到的視頻信號。
系統開發采用Microsoft Visual Studio 2010編程軟件,配以OpenCV庫函數來實現,OpenCV庫函數提供大量可供直接調用的函數,省去了重新封裝函數的時間,同時,OpenCV還提供了針對video文件和實時攝像機的幀提取函數和很多標準的圖像處理算法。從而縮短了開發周期,降低了開發難度。
圖1所示是一幅從無人機傳送回來的實時圖像,應用高斯濾波算法、雙邊平滑算法、增益算法、圖像融合算法進行處理后的效果圖分別如圖2、3、4、5所示。其中在進行圖像融合操作時,融合函數的權重值需根據實際處理的圖片來不斷調整數值,本文經過多次實驗不斷嘗試,當權重值取0.4和0.6時,圖像融合效果最好。

圖1 未經處理過的原圖像

圖2 高斯濾波處理后的圖像

圖3 雙邊平滑處理后的圖像

圖4 增益操作后的圖像

圖5 圖像融合操作后的圖像
由圖2可以看出,噪聲干擾得到了很好的改善,噪聲像素被弱化,畫面也比較干凈,目標突出。與2相比,圖3的圖像比較平滑,特別是噪點部分明顯減少了,本文運用雙邊平滑算法而不是高斯平滑、均值平滑等算法,原因是雙邊平滑更能夠避免圖像邊緣模糊化。與圖3相比,圖4的圖像對比明顯更強烈,輪廓也更清晰,這是因為圖像的像素得到增強,使背景色跟目標色區別越來越大。圖5是平滑處理圖與增益圖相融合操作后的圖像,取得了平滑與增益的雙重效果。與原圖像相比,經過本文算法進行圖像預處理后的無人機視頻圖像序列取得了顯著效果。
本文在基于OpenCV庫函數的基礎上,將高斯濾波算法、雙邊平滑算法、圖像增益技術以及圖像融合技術應用于無人機實時視頻處理上,較好地消除了噪聲對視頻畫面的影響,同時也實現了畫面的平滑、像素增益、邊緣信息的保留功能,從而獲得比較清晰美觀的視頻圖像。本文的應用程序也可以與優秀的硬件基礎相結合,打造出比較理想的視頻預處理系統,可較好用于為安防、航空、醫學、軍事等多方面視頻處理實現實際項目中的具體應用。
[1]C.Tomasi,R.Manduchi,"Bilateral Filtering for Gray and Color Images",Proceedings of the 1998 IEEE International Conference on Computer Vision,Bombay,India.
[2]T.Boult,R.A.Melter,F.Skorina,I.Stojmenovic."G-neighbors",Proceedings of the SPIE Conference on Vision Geometry II,pages 96~109,1993
[3]R.T.Chin,C.L.Yeh.Quantitative Evaluation of Some Edge-Preserving Noise-Smoothing Techniques.Computer Vision,Graphics,and Image Processing,67~91,1983
[4]圖像平滑處理(歸一化塊濾波、高斯濾波、中值濾波、雙邊濾波).http://blog.csdn.net/xw20084898/article/details/21822565.
[5]才溪.多尺度圖像融合理論與方法.電子工業出版社
[6]Zheng S,Shi W Z,Liu J,et al.Multisource Image Fusion Method Using Support Value Transform[J].IEEE Transactions on Image Pro-cessing,2007,16(7):1831~1839
Unmanned Aircraft;Digital Image Preprocessing;OpenCV
Application of OpenCV Image Preprocessing Technology in Unmanned Aircraft Based on Video
WU Chuan-ping1,HUANG Wen-kai2,WU Feng-jie2,ZHANG Wen-wen2,LIANG Jun-jie2
(1.School of Mathematics and Information Science,Guangzhou University,Guangzhou 510006; 2.Laboratory Center,Guangzhou University,Guangzhou 510006; 3.School of Mechanical and Electric Engineering,Guangzhou University,Guangzhou 510006)
OpenCV is used for digital image processing and computer vision of the open source code libraries.Starts from image processing in the application of unmanned aircraft video angle,proposes a preprocessing method.Applies Gauss filtering algorithm for image processing,bilateral smoothing algorithm,image gain function,and image fusion operation to UAV video,through the video frame image operation, solves the problem of realization of generating video image captured the jitter,low resolution of issues and the environment to produce light,noise etc..
1007-1423(2015)14-0070-04
10.3969/j.issn.1007-1423.2015.14.017
吳川平(1992-),女,重慶人,在讀本科生,專業方向為數學與應用數學
黃文愷(1981-),男,廣東韶關人,實驗師,碩士,從事領域為無人機、機器人等技術的實驗教學與技術開發
伍馮潔(1979-),女,廣東陽江人,碩士研究生,高級實驗師,研究方向為計算機測控技術方向
張雯雯(1994-),女,貴州赤水人,在讀本科,專業方向為光電信息科學與工程
梁俊杰(1995-),男,廣東廣州人,在讀本科,專業方向為機械設計制造及其自動化
2015-03-19
2015-05-12