劉心剛,郭飄,聶江華,喻小龍
(1.中國航空工業(yè)集團雷華電子技術(shù)研究所,無錫214063;2.南昌航空大學(xué),南昌330063)
在如今的互聯(lián)網(wǎng)信息時代,圖像處理技術(shù)對人們來說有著重要意義。人們通過圖像直觀地感受世界,獲取圖像中隱含的信息。在各行各業(yè)中,圖像信息發(fā)揮著重大作用。在采集圖像和處理圖像的過程中,存在圖像獲取方式的影響,造成了獲取的圖像產(chǎn)生噪聲或發(fā)生畸變等意想不到的結(jié)果。因此,對圖像進行預(yù)處理變得尤為重要。由于嵌入式的圖像處理系統(tǒng)處理速度緩慢,為了更好地滿足系統(tǒng)實時性,需要找出一個實時性好、處理效果好的硬件平臺。在眾多的硬件平臺中,本文結(jié)合FPGA的性能特點,以Zynq V7000 FPGA芯片作為硬件平臺,結(jié)合相應(yīng)的圖像預(yù)處理算法來實現(xiàn)的一個系統(tǒng),Zynq將FPGA和ARM有機地結(jié)合起來,能夠?qū)崿F(xiàn)獨特和差異化的系統(tǒng)功能,在其相應(yīng)的開發(fā)環(huán)境Vivado中,對FPGA的串口、緩存區(qū)等進行配置,搭建一個適應(yīng)FPGA運行的框架,再針對ARM做內(nèi)部的編程,實現(xiàn)預(yù)處理算法的功能,實時處理圖像數(shù)據(jù)。
結(jié)合Zynq V7000 FPGA芯片的特點,基于Zedboard系統(tǒng)實現(xiàn)圖像預(yù)處理。系統(tǒng)整體流程圖如圖1所示。
圖1系統(tǒng)整體流程圖
上位機通信程序使用的是MFC界面庫進行開發(fā)的,以對話框的形式呈現(xiàn)。主要實現(xiàn)的功能有:打開圖片文件,在編輯框中顯示選擇的文件路徑,在圖片控制框中顯示處理前圖片。在串口的選擇時首先對串口進行掃描,將打開的串口在Combo Box的下拉框中添加其串口號即可完成串口的選擇。在波特率的選擇上,首先在初始化時將常用的幾個波特率添加到波特率選擇的下拉框中,當選擇其中的一個波特率時,直接讀取當前選取的波特率。同樣地,預(yù)處理算法的選擇框在初始化時添加本課題使用的預(yù)處理算法,將選中的索引獲取,賦予每個算法一個編號,便于給FPGA發(fā)送選擇的預(yù)處理算法,等待處理完成后在處理后圖片顯示框中顯示處理后的圖片。為了提高整個系統(tǒng)的運行性能,加入了多線程和用戶自定義消息處理機制。圖2為上位機與FPGA通信界面。
圖2上位機與FPGA通信界面
上位機與FPGA是通過串口進行通信的。上位機主要執(zhí)行流程為選擇需要進行預(yù)處理的圖片文件,設(shè)置串口參數(shù),獲取預(yù)處理算法編號,發(fā)送預(yù)處理算法編號,發(fā)送圖片大小,發(fā)送圖片數(shù)據(jù),等待FPGA處理完成發(fā)送回數(shù)據(jù),接收處理之后的圖片大小、圖片數(shù)據(jù),再顯示處理完成的圖片。圖3為上位機流程圖。
在本文中,主要設(shè)計的是對圖像進行預(yù)處理,使用的算法有圖像的均值濾波、幾何畸變校正以及邊緣檢測。本文只介紹幾何畸變校正。
在通過數(shù)碼相機獲得圖形時,由于相機鏡頭本身的構(gòu)造原因,會導(dǎo)致圖像的幾何畸變,一般都是因為光學(xué)的成像系統(tǒng)與理想的情況不一致,尤其在廣角鏡頭下,拍攝圖片時會導(dǎo)致圖像的邊緣形成嚴重的畸變現(xiàn)象,這種非線性畸變是非常難去除的。因此,一種好的幾何畸變校正方法對人們用數(shù)碼相機拍攝的成品能起到很大的作用,對景物的記錄、對信息的讀取都有很大的幫助。
圖3上位機流程圖
幾何畸變校正是將畸變圖像的坐標經(jīng)過幾何變換后校正成正常坐標。幾何變換有以下兩個步驟:一是空間變換,二是灰度插值??臻g變換是為了找出畸變圖像和正常圖像像素點之間的對應(yīng)關(guān)系,對畸變圖像每一個點坐標進行修正得到在正常圖像中的精確對應(yīng)位置;灰度插值是為了計算出精確的灰度值,由于正常圖像中對應(yīng)的坐標往往不是整數(shù),因此需要使用插值算法擬合出該點的準確灰度值,這樣便可以完成整個的畸變校正過程。此過程如圖4所示。
圖4幾何校正流程圖
上位機與FPGA通信使用的是串口通信,通過串口發(fā)送和接收數(shù)據(jù)。下面通過系統(tǒng)調(diào)試驗證上述3種預(yù)處理算法,本文只介紹幾何畸變校正調(diào)試結(jié)果。幾何畸變校正效果圖如圖5所示。
圖5幾何畸變效果圖
由圖5的效果圖可見,系統(tǒng)可以正常地實現(xiàn)算法,可以實現(xiàn)將產(chǎn)生幾何畸變的圖像校正為正常圖像,由此可見系統(tǒng)調(diào)試成功。
本文完成了一個基于Zynq的圖像預(yù)處理系統(tǒng),具體為上位機選擇相應(yīng)的下位機通信串口號、通信比特率等設(shè)置后,選擇需要處理的圖片和測試的算法后,點擊處理按鈕上位機將通過串口把圖像數(shù)據(jù)發(fā)送給FPGA;FPGA接收到圖像數(shù)據(jù)后,對圖像數(shù)據(jù)進行初始的處理,再對選擇的相應(yīng)的算法進行處理后,得到的結(jié)果圖像數(shù)據(jù)通過串口傳送回上位機;上位機接收到結(jié)果后,把結(jié)果進行保存和顯示。