陶 勝
(集美大學(xué) 理學(xué)院,福建 廈門 361021)
數(shù)字圖像處理課程教學(xué)研究與實(shí)踐
陶 勝
(集美大學(xué) 理學(xué)院,福建 廈門 361021)
本文根據(jù)該課程的特點(diǎn),從教學(xué)內(nèi)容、教學(xué)方法、實(shí)驗(yàn)和課程設(shè)計(jì)等方面進(jìn)行探討,提出了在數(shù)字圖像處理教學(xué)中采用多種教學(xué)法,實(shí)驗(yàn)和課程設(shè)計(jì)中采用“剖析—實(shí)踐—創(chuàng)新”的觀點(diǎn),以達(dá)到調(diào)動學(xué)生學(xué)習(xí)數(shù)字圖像處理的積極性,加強(qiáng)工程實(shí)踐應(yīng)用能力,提高學(xué)生軟件開發(fā)水平的目標(biāo)。
數(shù)字圖像處理; 教學(xué)方法; 課程設(shè)計(jì)
數(shù)字圖像處理又稱為計(jì)算機(jī)圖像處理,它是指將圖像信號轉(zhuǎn)換成數(shù)字信號并利用計(jì)算機(jī)對其進(jìn)行處理的過程,也是一門集計(jì)算機(jī)科學(xué)、信息論和信號處理等學(xué)科為一體的綜合性邊緣學(xué)科。數(shù)字圖像處理課程教學(xué)目的是使學(xué)生掌握數(shù)字圖像處理的基本概念、原理及算法,并通過上機(jī)實(shí)驗(yàn),培養(yǎng)學(xué)生應(yīng)用Visual C++或MATLAB軟件編程實(shí)現(xiàn)數(shù)字圖像處理的理論算法的能力,為工程應(yīng)用和軟件開發(fā)打下基礎(chǔ)。
數(shù)字圖像處理是數(shù)學(xué)系信息與計(jì)算科學(xué)專業(yè)(本科)的一門限定性選修課程,總學(xué)時數(shù)為44學(xué)時,其中理論教學(xué)時數(shù)為32學(xué)時,實(shí)踐教學(xué)時數(shù)為12學(xué)時。數(shù)字圖像處理是一門典型的交叉性學(xué)科,具有理論性強(qiáng)和實(shí)踐性強(qiáng)等特點(diǎn),各種數(shù)字圖像處理方法一般都有數(shù)學(xué)理論支撐,需要學(xué)生在學(xué)習(xí)過程中通過實(shí)踐不斷加深對圖像處理技術(shù)的理解,同時提高實(shí)際分析問題和解決問題的能力。本文根據(jù)該課程的特點(diǎn)和學(xué)生的實(shí)際情況探討有效的教學(xué)方法,理論教學(xué)力求淺顯易懂,同時強(qiáng)調(diào)應(yīng)用和注重實(shí)踐,使學(xué)生認(rèn)識到該課程的重要性,激發(fā)他們的學(xué)習(xí)興趣,以期達(dá)到更好的教學(xué)效果。
數(shù)字圖像處理是一門理論性較強(qiáng)的學(xué)科,根據(jù)這一特性,選用電子工業(yè)出版社出版的楊杰編寫的《數(shù)字圖像處理及MATLAB實(shí)現(xiàn)》為教材,內(nèi)容包括:概述(2課時)、數(shù)字圖像處理的基礎(chǔ)(2課時)、圖像基本運(yùn)算(2課時)、圖像變換(4課時)、圖像增強(qiáng)(4課時)、圖像復(fù)原(4課時)、圖像壓縮編碼(6課時)、圖像分割(4課時)和彩色圖像處理(4課時)等方面的理論知識[1]。該教材以實(shí)踐為導(dǎo)向,以實(shí)際應(yīng)用為目標(biāo),系統(tǒng)地闡述了數(shù)字圖像處理的基礎(chǔ)理論和算法原理,同時介紹應(yīng)用MATLAB軟件編程實(shí)現(xiàn)一些常用的圖像處理的典型算法。
圖像處理過程首先需要讀取圖像源文件、然后進(jìn)行相應(yīng)的圖像處理、最后將處理后的結(jié)果保存到圖像文件中。而現(xiàn)有數(shù)字圖像處理教材缺乏對常用圖像文件格式的介紹,因此有必要補(bǔ)充這方面的有關(guān)知識。在數(shù)學(xué)圖像處理的教學(xué)中,增加了常用圖像文件格式bmp和圖像文件格式j(luò)pg 的講解,而其它圖像文件格式提供相應(yīng)的材料供學(xué)生進(jìn)一步了解,這樣有助于學(xué)生理解圖像的本質(zhì),特別是運(yùn)用Visual C++語言編程實(shí)現(xiàn)各種圖像處理算法。
由于數(shù)字圖像處理技術(shù)的快速發(fā)展,課堂教學(xué)在以教材為主線的基礎(chǔ)上,盡可能地結(jié)合科技期刊發(fā)表的論文成果來講授相關(guān)算法,不斷更新教學(xué)內(nèi)容。例如,對于圖像縮放,介紹圖像不按等比例進(jìn)行縮放時的圖像縫絡(luò)刪增算法;對于圖像增強(qiáng),增加介紹最新的圖像去霧方法以及對傳統(tǒng)的中值濾波進(jìn)行改進(jìn)的算法等;對于圖像復(fù)原,增加圖像受損或被破壞的情形下進(jìn)行修復(fù)的內(nèi)容;對于圖像壓縮編碼,增加基于字典的壓縮算法(LZW算法)。同時將一些數(shù)字圖像處理的新算法、新系統(tǒng)、新應(yīng)用等材料提供給學(xué)生,諸如全景圖像拼接、圖像檢索技術(shù)、車牌識別、指紋識別和人臉識別等方面的文獻(xiàn)和程序代碼,鼓勵學(xué)生學(xué)習(xí)研究。
此外,數(shù)字圖像處理課程的教學(xué)配有12學(xué)時的上機(jī)實(shí)驗(yàn)。要求學(xué)生掌握數(shù)字圖像處理的基礎(chǔ)理論和算法原理的同時,應(yīng)用MATLAB軟件和面向?qū)ο蟮某绦蛟O(shè)計(jì)語言Visual C++,通過上機(jī)實(shí)驗(yàn)編程實(shí)現(xiàn),以達(dá)到培養(yǎng)學(xué)生動手能力和提高軟件開發(fā)水平的目的。選用楊杰主編的《數(shù)字圖像處理及MATLAB實(shí)現(xiàn)——學(xué)習(xí)與實(shí)驗(yàn)指導(dǎo)》[2]作為上機(jī)實(shí)驗(yàn)指導(dǎo)書,蘇金明、王永利編著的《MATLAB 7.0實(shí)用指南》[3]等為輔助材料。實(shí)驗(yàn)項(xiàng)目有MATLAB圖像工具箱、Visual C++語言圖像編程、圖像變換與合成、圖像增強(qiáng)、圖像恢復(fù)、圖像編碼與壓縮、圖像邊緣檢測與分割等。
3.1 可視化教學(xué)法
除了采用傳統(tǒng)的黑板板書教學(xué)之外,盡可能地輔以軟件、課堂演示等多媒體教學(xué)法將數(shù)字圖像處理相關(guān)知識以可視化的方式進(jìn)行講解,以提高學(xué)生的學(xué)習(xí)興趣及教學(xué)效果。例如在講解bmp圖像文件格式時,應(yīng)用Visual C++軟件將圖像文件以二進(jìn)制方式打開,可以直觀地看到它的內(nèi)容,有助于學(xué)生更好地理解bmp文件的結(jié)構(gòu)。
圖像比語言更容易被學(xué)生感知,圖像處理所傳達(dá)的視覺信息需要直觀顯示,因此在闡述圖像處理算法的過程中,有必要演示直觀的實(shí)時處理結(jié)果,以達(dá)到吸引學(xué)生的注意力,提高教學(xué)效果的目的。例如,在講解采用線形變換進(jìn)行圖像增強(qiáng)的原理時,針對曝光不足的圖像,使用MATLAB圖像工具箱中的相關(guān)函數(shù),就可以演示通過線形拉伸增強(qiáng)圖像的對比度,改善圖像的視覺效果。教材中大部分算法,都提供了用MATLAB編程實(shí)現(xiàn)的代碼,而有些算法實(shí)現(xiàn)的代碼,需要教師自己收集、整理和編寫。為此,我們緊貼教材內(nèi)容開發(fā)課件,并編寫了一些基于MATLAB和Visual C++的數(shù)字圖像處理例程,如運(yùn)用MATLAB語言編寫了開關(guān)中值濾波、區(qū)域生長法等代碼,運(yùn)用Visual C++語言編寫料LZW編碼和解碼、JPEG編碼和解碼、數(shù)學(xué)形態(tài)學(xué)圖像處理等代碼。將這些課件和代碼適時地應(yīng)用到數(shù)字圖像處理課程的教學(xué)中。通過這些直觀可視化的實(shí)例演示,大大增加了該課程的趣味性,同時也激發(fā)了學(xué)生在實(shí)驗(yàn)教學(xué)環(huán)節(jié)和課后的動手實(shí)踐。
3.2 形象化教學(xué)法
形象化教學(xué)是將抽象的概念或原理與現(xiàn)實(shí)生活中的具體的事件相聯(lián)系,借助于兩類不同本質(zhì)事物之間的相似性,將一種已經(jīng)熟悉或掌握的特殊對象的知識推移到另一種新的特殊對象上去的推理手段。形象化教學(xué)模式遵循了學(xué)生的認(rèn)知規(guī)律,因而能有效地提高教學(xué)效果。例如,在介紹傅立葉變換時,先舉一個例子,對于一場籃球比賽,需要統(tǒng)計(jì)一些數(shù)據(jù),如得分、籃板、助攻、蓋帽、搶斷、失誤等,這些統(tǒng)計(jì)數(shù)據(jù)相當(dāng)于從另一種方法詮釋了這場比賽。同樣,對于一幅圖像,僅僅從空間域不足以了解它的全部信息,需要從另外一個角度去了解,傅立葉變換就是從頻率域去分析這幅圖像。又如,在人群一片嘈雜之聲中,我們能將注意力放在自己感興趣的某個人的聲音上,從而能單獨(dú)獲知他講話的內(nèi)容。其實(shí)耳蝸接受到的信號是所有人的聲音混合在一起的復(fù)雜信號,信號傳輸?shù)酱竽X后,會對其進(jìn)行傅立葉變換,從而將獨(dú)特音色音質(zhì)的聲音區(qū)分開來。這就是對傅立葉變換在人體中的應(yīng)用極好的形象化描述。
圖像分割是依據(jù)圖像的灰度、顏色或幾何性質(zhì)將圖像中具有特殊含義的不同區(qū)域區(qū)分開來,這些區(qū)域是互不相交的,每一個區(qū)域都滿足特定區(qū)域的一致性。在闡述LZW編碼壓縮時,可以形象地采用字典《Random House Dictionary of the English Language》的體制來作為編碼消息的密鑰,對于符號序列“A good example of how dictionary based compression”,將這8個單詞編碼為:1/1,822/3,674/4,1343/60,928/75,550/32,173/46,421/2,第一個數(shù)給出字典的頁數(shù),第二個數(shù)是該頁上單詞的序號。這8個單詞的ASCII碼表示共需43個字節(jié),而用字典編碼方案來編碼僅需20個字節(jié),這樣字典編碼將文本壓縮了約50%。
數(shù)學(xué)形態(tài)學(xué)可以形象化為一種濾波行為,所以很多地方稱它為形態(tài)學(xué)濾波。濾波中用的濾波器被稱為結(jié)構(gòu)元素,結(jié)構(gòu)元素往往是由一個特殊的形狀構(gòu)成,如線條、矩形、圓、菱形等??梢园呀Y(jié)構(gòu)元素形象化為“探針”,當(dāng)“探針”在圖像中不斷移動時,便可考察圖像各個部分之間的相互關(guān)系,從而了解圖像的結(jié)構(gòu)特征。
在授課過程中,發(fā)現(xiàn)數(shù)字圖像處理中的許多概念、原理或思想,可以利用現(xiàn)實(shí)中的實(shí)例來進(jìn)行形象化教學(xué),這樣有助于學(xué)生的理解、吸收和掌握。
3.3 圖表式直觀教學(xué)法
采用圖表教學(xué),具有直觀清晰、生動形象、凝煉簡潔、便記憶、易于理解等優(yōu)點(diǎn),在教學(xué)中深受學(xué)生歡迎。例如快速傅立葉變換的蝶形流程圖,霍夫曼編碼過程中使用的霍夫曼樹,基于字典的壓縮時使用的字頭表、字尾表和代碼表等。
在教學(xué)過程中,面對抽象且復(fù)雜的數(shù)學(xué)公式,如果采用圖示教學(xué),學(xué)生理解起來就容易得多。例如,數(shù)學(xué)形態(tài)學(xué)的腐蝕運(yùn)算定義為:
XΘB={(x,y)|Bxy?X}
其中X為二值圖像,如圖1(a)所示,B為結(jié)構(gòu)元素,如圖1(b)所示,B對X腐蝕所產(chǎn)生的二值圖像是這樣的點(diǎn)(x,y)組成的集合,如果B的原點(diǎn)位移到(x,y),那么B將完全包含于X中,B對X腐蝕的結(jié)果如圖1(c)中的陰影部分所示。
又如,圖像處理中的卷積運(yùn)算公式復(fù)雜,為了學(xué)生更好地理解卷積運(yùn)算,可以用二維卷積運(yùn)算原理圖[4]來講解,如圖2所示。
在圖2中,(a)為圖像數(shù)據(jù),(b)為卷積核,即圖像濾波器,將卷積核圍繞中心旋轉(zhuǎn)180度,如圖2(c)所示,將旋轉(zhuǎn)的卷積核按照從上到下、從左至右的順序滑動到圖像中,如圖2(d)所示(上標(biāo)為卷積核數(shù)據(jù))。
圖1 腐蝕運(yùn)算示意圖
圖2 二維卷積運(yùn)算原理圖
將旋轉(zhuǎn)的卷積核數(shù)據(jù)與重疊的圖像數(shù)據(jù)相乘(未重疊的圖像數(shù)據(jù)取值為0),然后相加即得卷積結(jié)果,如圖2(e)所示,例如,第1行第1列的值為3×17=51,第1行第2列的值為1×17+3×24=89,…,第4行第4列的值為5×9 + 7×5 + 14×6+6×8+13×4+20×7+12×2+19×1+21×3=510,…,第7行第7列的值為9×9=81。
通過卷積運(yùn)算原理圖進(jìn)行講解,學(xué)生容易理解卷積的實(shí)質(zhì)就是對圖像領(lǐng)域像素加權(quán)和得到輸出值。
MATLAB語言的圖像處理工具箱提供了豐富的圖像處理函數(shù),使得用戶可不必關(guān)心圖像文件的格式、讀寫和顯示等細(xì)節(jié),而把精力集中在算法研究上,方便可視化教學(xué)以及仿真實(shí)驗(yàn)。但MATLAB底層代碼不對用戶開放,實(shí)現(xiàn)的算法已經(jīng)被封裝好,其中工具包的運(yùn)用會替代很多重要算法的實(shí)現(xiàn),從而使學(xué)生喪失實(shí)踐這些算法精髓的機(jī)會[5]。MATLAB語言在處理圖像時運(yùn)行速度慢、可移植能力弱,兼容性較差,只適合學(xué)生在實(shí)驗(yàn)室進(jìn)行仿真調(diào)試,不適合工程應(yīng)用方面的開發(fā)。因此,實(shí)驗(yàn)教學(xué)采用MATLAB和Visual C++相結(jié)合。一方面,對MATLAB的一些函數(shù)進(jìn)行代碼剖析,如二維中值濾波medfilt2函數(shù)、采用Otsu算法求閾值的graythresh函數(shù)等;另一方面,運(yùn)用Visual C++語言開發(fā)出簡易的圖像處理平臺,利用Visual C++提供的OleLoadPicture函數(shù)實(shí)現(xiàn)了常見的BMP、JPG、PNP、GIF以及WMF等格式圖像的讀取和顯示,簡單處理包括放大、縮小、旋轉(zhuǎn)和鏡像等幾何變換以及特效處理。學(xué)生實(shí)驗(yàn)時,鼓勵他們選用稍難的Visual C++語言。為了取得較好的實(shí)驗(yàn)效果,筆者編寫了實(shí)驗(yàn)指導(dǎo)書,供學(xué)生上機(jī)使用。學(xué)生上機(jī)實(shí)驗(yàn)時,要求先按照實(shí)驗(yàn)指導(dǎo)書進(jìn)行練習(xí),然后再按照要求完成實(shí)驗(yàn)報告。
根據(jù)該門課程的特點(diǎn),采用理論知識開卷筆試與上機(jī)實(shí)驗(yàn)相結(jié)合的考核方式。開卷筆試著重考查學(xué)生對各種基本知識的掌握程度,并針對量不大的數(shù)據(jù)進(jìn)行計(jì)算處理;上機(jī)實(shí)驗(yàn)著重培養(yǎng)學(xué)生上機(jī)動手能力,考查學(xué)生應(yīng)用MATLAB或Visual C++語言編程實(shí)現(xiàn)的能力。而總成績由平時的考勤和作業(yè)(占10%)、理論考試成績(占60%)和實(shí)驗(yàn)成績(30%)三部分組成,從整體上對學(xué)生的學(xué)習(xí)做一個綜合衡量。
課程設(shè)計(jì)是本科生的重要實(shí)踐環(huán)節(jié),是一次全面的綜合練習(xí)。其目的是將理論學(xué)習(xí)和實(shí)際有機(jī)聯(lián)系起來,加強(qiáng)學(xué)生實(shí)驗(yàn)基本技能的綜合訓(xùn)練,培養(yǎng)和提高學(xué)生的程序設(shè)計(jì)能力與實(shí)際動手能力,培養(yǎng)學(xué)生收集資料、整理相關(guān)素材、處理圖片以及編寫技術(shù)文獻(xiàn)的能力,從而達(dá)到提高學(xué)生軟件開發(fā)水平以及創(chuàng)新能力的目的。
課程設(shè)計(jì)任務(wù)之一是要求學(xué)生運(yùn)用圖像處理和平面設(shè)計(jì)的專業(yè)工具軟件Photoshop完成新聞傳媒、廣告創(chuàng)意、包裝等眾多領(lǐng)域的圖像設(shè)計(jì)。教師提供一些范例,如制作禁煙公益廣告,要求學(xué)生自己查閱文獻(xiàn)資料,完成諸如產(chǎn)品銷售廣告設(shè)計(jì)、各種公益廣告、宣傳廣告設(shè)計(jì)、各種圖書、雜志封面設(shè)計(jì)、電影海報設(shè)計(jì)、各種賀卡設(shè)計(jì)、各種包裝盒設(shè)計(jì)等,以培養(yǎng)學(xué)生的動手能力和創(chuàng)新能力。
任務(wù)之二是要求學(xué)生應(yīng)用MATLAB或Visual C++語言編程實(shí)現(xiàn)數(shù)字圖像處理的理論算法。例如,圖像增強(qiáng)包括直方圖均衡化、高通濾波低通濾波、同態(tài)濾波等;圖像去噪包括去椒鹽噪聲的中值濾波、去高斯噪聲的均值濾波、去除周期噪聲的帶阻濾波和餡波濾波等;圖像恢復(fù)包括用Wiener濾波器、regularized濾波器、Lucy-Richardson算法、盲去卷積算法進(jìn)行恢復(fù);圖像邊緣檢測包括用梯度算子、Robert算子、Sobel算子、Prewitt算子、拉普拉斯算子、Canny算子等進(jìn)行邊緣檢測;圖像形態(tài)學(xué)處理包括膨脹、腐蝕、開運(yùn)算與閉運(yùn)算以及細(xì)化等。其中應(yīng)用MATLAB 語言要求進(jìn)行GUI界面設(shè)計(jì),鼓勵學(xué)生實(shí)現(xiàn)PhotoShop 等圖像處理軟件中相關(guān)算法如模糊、馬賽克、浮雕、削波等,形成一個小型的圖像處理系統(tǒng)。
社會需求也是多元化的,例如廣告設(shè)計(jì)公司需要的可能是理論基礎(chǔ)扎實(shí)、有創(chuàng)新能力、操作熟練的人,課程設(shè)計(jì)就是培養(yǎng)學(xué)生這方面能力的重要環(huán)節(jié)。
數(shù)字圖像處理作為信息與計(jì)算科學(xué)專業(yè)的專業(yè)類課程,占有重要學(xué)科地位,計(jì)算機(jī)、信息工程等專業(yè)也開設(shè)類似的課程,因此如何組織該課程的教學(xué)是非常值得探討與實(shí)踐的問題。本文從教學(xué)內(nèi)容、理論教學(xué)方法、上機(jī)實(shí)驗(yàn)、課程設(shè)計(jì)以及考核方式等方面進(jìn)行探討,并將此應(yīng)用于實(shí)際教學(xué),激起了學(xué)生學(xué)習(xí)該門課程的興趣,以達(dá)到加強(qiáng)學(xué)生工程實(shí)踐應(yīng)用能力和提高學(xué)生軟件開發(fā)水平的目的,取得了良好的效果。此外,教師需要不斷的學(xué)習(xí)、更新知識、積累豐富的應(yīng)用實(shí)例,應(yīng)用于數(shù)字圖像處理教學(xué),積極推進(jìn)教學(xué)改革,爭取教學(xué)質(zhì)量的進(jìn)一步提高。
[1]楊杰,黃朝兵. 數(shù)字圖像處理及MATLAB實(shí)現(xiàn)[M]. 北京:電子工業(yè)出版社,2013.
[2]楊杰. 數(shù)字圖像處理及MATLAB實(shí)現(xiàn)——學(xué)習(xí)與實(shí)驗(yàn)指導(dǎo)[M]. 北京:電子工業(yè)出版社,2016.
[3]蘇金明,王永利. MATLAB 7.0實(shí)用指南[M]. 北京:電子工業(yè)出版社,2004.
[4]趙小川.MATLAB圖像處理[M]. 北京:北京航空航天大學(xué)出版社,2014.
[5]柏均,閆紅梅,張鳴.Matlab 在“數(shù)字圖像處理”課程教學(xué)中的利弊分析[J].電氣電子教學(xué)學(xué)報,2010,32(2):82-86.
[6]周海芳,唐宇.“數(shù)字圖像處理”選修課教學(xué)研究與實(shí)踐[J].當(dāng)代教育論壇,2008,(10):119-121.
[7]唐紅梅,王霞,李琦,等. 數(shù)字圖像處理課程教學(xué)改革與實(shí)踐[J]. 河北工業(yè)大學(xué)成人教育學(xué)院學(xué)報,2006,21(4):8-10.
The Teaching Study and Practice on the Course of Digital Image Processing
TAO Sheng
(Science School, Jimei University, Xiamen Fujian 361021,China)
As a professional course of information and computing science major, digital image processing is rich in content, abstract in concept and practical in application. Based on these characteristics, the paper studies the course in terms of the teaching method, experiment and curriculum design. It proposes diversified teaching methods and “analysis-imitation-innovation” approaches in experiment and curriculum design with the purpose to arouse the students’ enthusiasm for this course, strengthen the application ability of engineering practice and enhance students’ level of software development.
digital image processing; teaching method; curriculum design
2017-01-03
陶 勝(1968-),男,副教授,理學(xué)碩士,研究方向?yàn)橛?jì)算機(jī)圖形圖像處理。
G42
A
1674-344X(2017)2-0096-04