鄒煥新,周石琳
(國防科技大學電子科學與工程學院,湖南長沙 410073)
“數字圖像處理”課程內容多、概念抽象、實踐性強,單純通過理論教學很難使學生深入理解和掌握數字圖像處理的基本概念、基本原理和基本方法,許多算法都需要借助軟件進行編程和效果演示,因此,進行相應的實驗教學是必不可少的。通過實驗教學,不僅可以將枯燥的理論知識直觀化、通俗化、趣味化,而且還可以培養學生的計算機編程能力及獨立思考能力[1-5]。
市場上流行的圖像處理商用軟件(如PhotoShop等),與實際教學過程中的教學內容脫節太大。我們在VC++.NET[6]平臺上構建了數字圖像處理交互式的教學實驗系統,該系統有助于學生通過實驗直觀地認識和掌握圖像處理的原理和用途。
本實驗教學系統是按照“數字圖像處理”課程的具體要求并基于VC++.NET平臺構建而成的。系統在構建過程中充分吸收了其它類似實驗系統的優點,并結合課程實際教學情況進行了適當的擴展和完善,形成了以下幾個特點。
(1)直接服務于“數字圖像處理”課程的教學需要。教師在給學生講授相關理論之后,就可以運行本實驗系統,利用系統提供的相關的功能模塊對輸入的圖像進行處理,得出處理結果,還可以對輸入和輸出的圖像進行比較分析。
(2)實驗系統與課程教材緊密結合,涵蓋面廣,基本上把教材上的相關內容和基本算法用軟件模塊實現。同時,為便于學生直觀理解課程內容,在軟件功能模塊的實現過程中均采用原理性的算法[5]。
(3)采用人性化的開發理念,使操作具有較強的靈活性。根據當前實施的操作可以通過按鍵顯示相應的原理,這些原理可以由教師在線或離線動態編輯,非常適合教師在課堂上演示實驗。學生既可以比較處理前后的圖像,又能看到相關的原理解釋。
(4)實驗教學系統基本上包括了圖像處理的所有內容,而且引入了圖像處理領域較新的研究成果,使學生能夠了解圖像處理的研究進展。
(5)實驗系統對學生采取源代碼完全開放的策略,這使得學生在課程學習、畢業設計或課程設計、攻讀研究生或者是參加工作后均可以基于系統已經構建的框架,進一步研制功能更完善和性能更好的圖像處理系統。
實驗教學系統框架采用基于VC++.NET的多文檔模塊化程序設計。所組成的13個模塊有如下功能。
(l)視覺特性模塊—包括同時對比度效應、馬赫帶效應以及對數模型等;
(2)圖像顯示模塊—包括 Bayer抖動顯示、Floyd-Steinberg抖動顯示等;
(3)圖像點運算模塊—包括圖像反色、線性變換、閾值變換、窗口變換和灰度拉伸等;
(4)幾何變換模塊—包括圖像的平移、圖像的縮放、圖像的鏡像變換(垂直和水平)、圖像的轉置和圖像的旋轉等;
(5)正交變換模塊—包括Fourier變換、離散余弦變換、沃爾什變換、哈達瑪變換、霍特林變換和小波變換等;
(6)形態學變換模塊—包括二值圖像和灰度圖像的膨脹運算、腐蝕運算、開運算和閉運算等;
(7)圖像增強模塊—包括對比度增強、圖像平滑去噪、圖像銳化、圖像模板卷積及其過程演示、頻域濾波、同態濾波和偽彩色增強等;
(8)圖像恢復模塊—包括簡單逆濾波、可分離的最小二乘恢復、不可分離的最小二乘恢復、Wiener濾波和最大熵恢復等;
(9)圖像編碼模塊—包括Huffman編碼、香農-費諾編碼、行程編碼、算術編碼、位平面編碼、LZW編碼和JPEG編碼等;
(10)圖像分割模塊—包括基于閾值的分割方法、基于邊緣的分割方法、基于區域的分割方法以及基于特定理論的分割方法等;
(11)圖像配準模塊—演示一種基于特征點匹配的圖像配準方法;
(12)特征提取模塊—演示圖像中形狀特征的提取方法,例如長、寬、面積、周長、圓度、偏心率、主軸方向和代數不變矩等幾何特征參數的提取;
(13)圖像識別模塊—介紹模板匹配模型。
VC++.NET是一種面向對象的可視化編程工具,它提供的AppWizard應用程序向導能自動生成應用程序的標準框架,因此,實驗教學系統基于MDI應用程序框架來構建。此外,根據VC++.NET面向對象技術中的對象封裝特點,針對構建系統的具體需求,設計了多個與基本操作和功能模塊對應的對象類,主要包括:CDib,CDither,CPixelOperation,CGeometricTransform,COrthogonalTransform,CMorphologicalTransform,CEnhance,CRestoration,CCode,CSegmentation,CRegistration,CFeatureExtraction 和CRecognition等。由于在VC++.NET的MFC中,以CBitmap類代表DDB(設備相關位圖)圖像,這方便了編程人員對DDB的使用。
然而,在通常情況下不會把DDB圖像存儲成文件,因此,使用更多的是DIB(設備無關位圖)圖像,但是MFC并沒有提供專門的類來處理DIB文件,因此有必要設計可以重復使用的CDib類,專門用來處理DIB圖像。在此,CDib類的設計參考了編程書籍和網絡共享源代碼,并對其進行了適當的修改和擴展。該類提供對DIB圖像的基本操作,包括裝載位圖、獲取位圖相關信息、創建調色板和繪制位圖等主要功能。而其它的對象類則直接封裝了與各個功能模塊對應的屬性和方法。
在開放源代碼的策略下,教師和學生等使用人員可在現有類的基礎上,根據程序代碼中詳細注釋的中文說明,方便地對它們進行繼承和派生,以創建更加專門的、功能更加強大的符合實際需求的對象類。在此基礎上進一步完善本實驗教學系統的各項功能,而這也正是構建實驗教學系統的初衷之一。
(1)圖像正交變換
以圖像的Fourier變換為例,分析幅度譜和相位譜的特點及其作用。圖像Fourier變換的幅度譜和相位譜及僅利用幅度譜或相位譜的重建結果如圖1所示。從圖中可以看出,幅度譜和相位譜對于完整地重建一幅圖像是必不可少的,僅利用幅度譜重建的圖像是不可辨認的,而僅利用相位譜重建的圖像則存在著嚴重的質量退化。

圖1 圖像幅度譜和相位譜及其重建結果
利用不同圖像(Zebra圖像和Cheetah圖像,兩幅圖像尺寸大小相同)的幅度譜和相位譜以及交叉重建的結果如圖2所示。
從圖中可以看出,相位譜比幅度譜在圖像的視覺效果中起著更加重要的作用,而幅度譜則通常更多地應用于圖像的分析計算中。其中,圖2(d)為用Zebra相位和Cheetah幅度交叉重建的圖像,圖2(h)為用Cheetah相位和Zebra進行幅度交叉后重建的圖像。
(2)圖像增強
以圖像的直方圖均衡為例。直方圖是圖像最基本的統計特征,它反映的是圖像的灰度值的分布情況。直方圖均衡的目的是使圖像在整個灰度值動態變化范圍內的分布均勻化,改善圖像的亮度分布狀態,增強圖像的視覺效果,是圖像預處理中涉及最廣泛的基本概念之一。圖3示出了直方圖均衡前后的圖像及其直方圖對比。從圖可以看出,經過直方圖均衡之后,原始圖像的對比度加大了,直方圖分布相對來說更加均勻,圖像看起來更加清晰。

圖2不同圖像幅度譜和相位譜交叉重建

圖3 直方圖均衡圖像及直方圖對比
(3)圖像配準
圖像配準就是將不同時間、不同傳感器(成像設備)或不同條件下(天候、照度、攝像位置和角度等)獲取的兩幅或多幅圖像進行匹配、疊加的過程,廣泛地應用于遙感數據分析、計算機視覺和圖像處理等領域。通過特征點匹配,建立兩幅圖像之間的對應關系,確定相應幾何變換參數,對兩幅圖像中的一幅進行幾何變換以實現圖像配準。圖4示出了對兩幅圖像進行配準的結果。從圖上可見,經過特征點匹配之后,待配準圖像已經很好地校正到與參考圖像相同的觀察方向和分辨率上,并進行了適當的裁剪,從而為后續的變化檢測與分析過程奠定了良好的基礎。

圖4 兩幅圖像的配準結果
本實驗教學系統構建的最初目的是直接應用于本科生“數字圖像處理”課程的教學,已在我校信息工程專業本科生的課程教學中采用,取得了如下較好的效果。
(1)學生普遍歡迎和接受本實驗教學模式,能夠在實際動手操作中理解和掌握相關知識和技能,學習積極性有很大提高;
(2)很好地激發了學生的創造性,學生能夠通過查閱文獻或創新思路來優化系統模塊算法,而有些知識是課堂上沒有講過的;
(3)學生在實際編程改進和完善功能模塊算法過程中,加深了對數字圖像處理基本知識和概念的掌握;
(4)鍛煉和增強了學生之間的協作和互助精神,學生在交流的同時加深了對知識的理解;
(5)實驗教學系統的使用實際上也在一定程度上有助于提高學生的“數字圖像處理”課程考核成績,從統計來看,提高幅度約為10%。
此外,本實驗系統不僅適用于本科生“數字圖像處理”課程實驗教學,還推廣應用于我校研究生“數字圖像分析”課程的實驗教學中,并取得了預期的效果。為了使本系統在課程實驗教學中發揮更大的作用,還需對其不斷完善,如系統應該盡可能兼容各種格式的圖像、對大圖像的處理速度還需進一步優化、增加更多的原理性算法功能模塊等,這是本實驗系統后續需要進一步加強和完善的地方。
[1] 黎寧,徐曉波,牛征.Matlab平臺下圖像處理實驗教學軟件的實現[J].南京:電氣電子教學學報,2001,23(5):55-56
[2] 張坤華,紀震.“數字圖像處理”可視化教學體系探索[J].南京:電氣電子教學學報,2007,29(1):113-115
[3] 盛利元,李宏言,孫克輝.“數字圖像處理”實驗教學探索與實驗軟件研究[J].南京:電氣電子教學學報,2005,27(3):75-77
[4] 張秀榮,孟和達來.數字圖像處理系統的開發與研究[J].長沙:湖南師范大學自然科學學報,2011,34(6):35-39
[5] 張秉仁,韋仁會,高游等.數字圖像處理實驗教學系統的開發及其應用[J].北京:實驗技術與管理,2004,21(3):87-90
[6] 曉東,王勝海等.Visual C++.NET中文版實用培訓教程[M].北京:清華大學出版社,2002