郭永芳 黃凱
摘要:本文在分析目前數字圖像處理課程遇到的幾個問題的基礎上,提出區(qū)分難度等級的數字圖像處理實驗設計理念,并用一個實例進行了說明。實踐表明,繪制程序流程圖以及區(qū)分難度等級的數字圖像處理實驗可以使學生更好地掌握數字圖像處理相關算法,激發(fā)學生學習興趣,提高學生編程能力和創(chuàng)新能力。
關鍵詞:數字圖像處理實驗 流程圖 難度等級
DOI:
10.16657/j.cnki.issn1673-9132.2016.01.009
數字圖像處理是信息科學中發(fā)展最快的研究熱點方向,是模式識別、計算機視覺、多媒體技術等學科的基礎。自從20世紀60年代以來伴隨著計算機技術的高速發(fā)展,數字圖像處理技術獲得了長足進步并且已經廣泛應用于社會生活的各個領域。從20世紀80年代開始,我國部分高校開始設置數字圖像處理課程,目前其已經成為高校信息類專業(yè)普遍開設的一門課程。我校計算機學院、信息學院和電氣學院的相關專業(yè)都開設了數字圖像處理課程。
然而,目前數字圖像處理課程遇到如下幾個問題:(1)數字圖像處理課程從本質上說是一門研究數學算法的課程,而現實的教學情況是學生普遍數學功底薄弱,學生面對抽象的數學問題有嚴重的畏難情緒,一些學者對此在教學和實驗上進行了許多研究[1-4]。(2)計算機類、信息類的相當一部分碩士研究生和博士研究生都在進行和圖像處理相關的研究,因此數字圖像處理課程成為多個學校研究生入學考試課程或面試課程。(3)目前部分諸如“軟件杯”這樣的全國大學生競賽,會選用一些需要圖像處理知識的競賽題目,例如人臉識別及認證登陸、基于視頻文件的車輛分析系統(tǒng)等。全國數學建模大賽2013年題目——碎紙片的拼接和復原,也要利用圖像處理的知識。
這就要求我們在有限的數字圖像處理授課中,如我校計算機專業(yè)數字圖像處理為32學時,不僅要使得學生掌握數字圖像處理,諸如圖像變換、圖像增強、圖像復原、圖像編碼和圖像分割等基本圖像處理的算法原理,更要引導學生運用專業(yè)知識解決實際問題,并嘗試改進,激發(fā)學生專業(yè)興趣,培養(yǎng)創(chuàng)新意識。
我自2007年春季學期開始講授數字圖像處理,個人學習經歷、多年的教學經驗以及和其他優(yōu)秀任課教師多方交流,深刻認識到編程實現算法,即將枯燥的理論推導轉化為立竿見影的實際操作可以激發(fā)學生的學習興趣、激勵學生的創(chuàng)造性思維。因此,針對計算機專業(yè)的數字圖像處理課程的輔助課程——數字圖像處理實驗,我進行了一些深入的研究。
一、編程語言的選擇
鑒于我校計算機專業(yè)學生在大二下學期學習數字圖像處理課程,此時已經學習的C++編程語言,有一定的編程基礎。而MATLAB語言計算矩陣比較方便,并且Image Processing Toolbox 提供了一套全方位的參照標準算法、函數和應用程序,可用于進行圖像處理、分析、可視化和算法開發(fā)。因此,數字圖像處理實驗課程首先會用兩個學時簡要介紹MATLAB編程環(huán)境和圖像中常用函數。在實現具體算法時,編程語言主要選擇MATLAB語言,對于部分算法,學生可以選用C++語言實現,這樣安排可以使學生掌握不同的編程語言,主要在于編程環(huán)境不同,提高學生自學能力。
二、 分難度等級的實驗設計
學生的學習能力和編程能力有一定的差異,部分實驗內容分為三個等級:
1.A等級:繪制算法流程圖,并用MATLAB庫函數實現相關算法;教學目的:熟練掌握數字圖像處理算法。
2.B等級:繪制算法流程圖,自己按照流程圖用MATLAB語言或C語言編程實現算法;教學目的:熟練掌握數字圖像處理算法,提高編程能力。
3.C等級:繪制算法流程圖,自己按照流程圖用MATLAB語言或C語言編程實現算法,并比較多種相關算法,或分析算法優(yōu)缺點,改進算法;教學目的:熟練掌握數字圖像處理算法,提高編程能力,培養(yǎng)學生創(chuàng)新能力。
實驗設計強調兩點:(1)流程圖的重要性: A、B和C三個等級中都要求學生必須繪制算法流程圖。我根據多年教學經驗發(fā)現,很多學生面對算法不知從何入手,而繪制算法流程圖可以使思路清晰,一方面可以更深刻地了解算法本身的含義,另一方面可以將復雜問題簡單化,將多個功能簡化為一個個小功能,比較容易入手。(2)實驗區(qū)分難度等級,A等級激發(fā)學生學習興趣,所有學生都必須具備此水平;B等級提高學生編程能力,鼓勵學生在A等級基礎上自助完成B等級實驗;C等級培養(yǎng)學生創(chuàng)新能力,鼓勵考研,參加競賽的學生提前做好準備。
下面列舉數字圖像處理的其中一個實驗——圖像空間域平滑。該實驗的主要目的是要求掌握幾種常見的圖像平滑算法,主要涉及的算法有局部平滑法、超限像素平滑法、灰度最相近的K個鄰點平均法、最大均勻性平滑法、有選擇保邊緣平滑法以及中值濾波法。
A等級:繪制所有算法的流程圖,并能用MATLAB庫函數實現局部平滑法和中值濾波法,給出圖像處理結果。
B等級:在A等級的基礎上,不用庫函數,實現各種算法,給出圖像處理結果。
C等級:在B等級的基礎上,利用上述算法,對不同的圖像進行處理,并對處理結果進行比較分析,鼓勵改進算法。
圖1示出了4-鄰域局部平滑法的流程圖和對應的MATLAB程序,屬于B等級,不同算法主要區(qū)別在于圖1中間虛線部分示出部分的兩層循環(huán)內處理形式,這也是算法核心所在。
[開始][讀入原圖;初始化新圖][獲取圖像尺寸M行N列][行初始值i=2][i<M][列初始值j=2][j<N][G(i,j)=(f(i-1,j)+f(i,j-
1)+f(I,j+1)+f(i+1,j))/4][j=j+1][i=i+1][顯示新圖像][結束][f=imread(‘原圖.png)
G=f;
[M,N]=size(f);
][for i=2:M-1
for j=2:N-1
G(i,j)=
f(i-1,j)+f(i,j-1)+
f(I,j+1)+f(i+1,j)/4
end
end][Figure;
Imshow(G);][N][N]
圖1 局部平滑法流程圖和MATLAB程序
三、 結束語
目前,計算機類的多種課程實驗都是要求學生編程解決一些問題,然而部分學生無從下手,而失去學習興趣。經驗表明,繪制程序流程圖,讓學生自己將復雜的問題步驟化,從而分解為一個一個小問題,可以引發(fā)學生學習興趣。此外,繪制流程圖的過程也是熟悉算法思想的一個重要過程。而區(qū)分難度等級的實驗設計可以滿足不同學生的需求,也可以引導并啟發(fā)學生面對新算法時如何分析問題,提高學生創(chuàng)新能力。
參考文獻:
[1]鄭林濤,董永生.Image軟件在數字圖像處理課程教學中的應用[J].中國電力教育,2014(8):112-113.
[2]鄒煥新,周石琳,雷琳,計科峰,孫浩.數字圖像處理課程雙語教學的探索與實踐[J].計算機工程與科學,2014(36):226-230.
[3]孔韋韋,雷陽,李小曼.軍隊院校數字圖像處理課程的教學優(yōu)化改革[J].計算機教育,2015(34):34-37.
[4]彭曉明.基于MATLAB的數字圖像處理課程的教學實驗設計[J].高等教育研究,2009(26):60-62.
作者簡介:
郭永芳(1979- ),女,河北石家莊人,河北工業(yè)大學計算機科學與軟件學院,講師,博士。
黃凱(1980- ),男,河北邯鄲人,河北工業(yè)大學電氣工程學院,講師,博士在讀。
(責編 張宇)