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