馬宏亮,查申龍,吳義恒,朱海柱,江巨浪
(安慶師范大學(xué)物理與電氣工程學(xué)院,安徽安慶246133)
數(shù)字圖像處理是通過(guò)計(jì)算機(jī)對(duì)數(shù)字圖像進(jìn)行噪聲抑制、對(duì)比度增強(qiáng)、目標(biāo)分割、特征提取等處理的方法和技術(shù),是高校電子信息類專業(yè)開(kāi)設(shè)的專業(yè)基礎(chǔ)課程之一。圖像處理技術(shù)近年來(lái)得到了迅猛發(fā)展,經(jīng)典教材也較多,如岡薩雷斯編著的《Digital Image Processing》[1]。通過(guò)合理設(shè)置數(shù)字圖像處理課程的實(shí)驗(yàn)實(shí)踐環(huán)節(jié),搭建相關(guān)虛擬實(shí)驗(yàn)處理平臺(tái),可以豐富專業(yè)實(shí)驗(yàn)結(jié)構(gòu)體系,同時(shí)提升學(xué)生的動(dòng)手能力和學(xué)習(xí)興趣[2-3]。計(jì)算機(jī)語(yǔ)言MATLAB(Matrix&Laboratory),意為矩陣工廠,在處理以矩陣形式保存的數(shù)字圖像的相關(guān)運(yùn)算時(shí),較C、JAVA和FORTRAN等語(yǔ)言更為簡(jiǎn)便,因而在實(shí)際數(shù)字圖像處理的教學(xué)中有著廣泛的應(yīng)用。文獻(xiàn)[4]指出,通過(guò)在數(shù)字圖像處理課程中滲透MATLAB教學(xué),可以化解傳統(tǒng)教學(xué)方式中的繁雜步驟,如MATLAB自帶的函數(shù)工具可以很方便地實(shí)現(xiàn)圖像的讀取、保存或顯示操作,免去了使用C等編程語(yǔ)言在處理圖像時(shí)多行代碼的編寫(xiě)。文獻(xiàn)[5]則是較為系統(tǒng)地概括了數(shù)字圖像處理實(shí)驗(yàn)?zāi)K設(shè)計(jì)的內(nèi)容安排,通過(guò)對(duì)實(shí)驗(yàn)內(nèi)容進(jìn)行按難度分層遞進(jìn)設(shè)計(jì),可以很好地應(yīng)對(duì)學(xué)生實(shí)踐能力參差不齊的實(shí)際現(xiàn)狀。為了更進(jìn)一步提高數(shù)字圖像處理實(shí)驗(yàn)教學(xué)的效果,本課題組結(jié)合近年來(lái)的數(shù)字圖像處理實(shí)驗(yàn)教學(xué)經(jīng)驗(yàn),提出在LabVIEW(Laboratory Virtual Instrument Engineering Workbench)圖形化編程平臺(tái)中嵌入MATLAB圖像處理程序的實(shí)驗(yàn)教學(xué)方法,這樣可以直觀展現(xiàn)圖像處理實(shí)驗(yàn)中數(shù)據(jù)的輸入、輸出與流向,從而進(jìn)一步強(qiáng)化學(xué)生對(duì)相關(guān)實(shí)驗(yàn)內(nèi)容的理解。
通常數(shù)字圖像的描述和存儲(chǔ)均采用矩陣形式,MATLAB語(yǔ)言強(qiáng)大的矩陣運(yùn)算性能無(wú)疑可以很好地提高數(shù)字圖像處理的效率[5],但也存在不足,主要體現(xiàn)在以下兩方面:
1)MATLAB在處理圖像時(shí)無(wú)法形象直觀地表示出數(shù)據(jù)的具體流向,這在一定程度上造成理解和糾錯(cuò)修改的難度。
2)使用MATLAB對(duì)數(shù)字圖像進(jìn)行編程處理時(shí),基本上是全文本輸入模式,編程形式單一,學(xué)生易感覺(jué)枯燥。
LabVIEW是一種圖形化編程語(yǔ)言(即通常所說(shuō)的G語(yǔ)言),在現(xiàn)代工業(yè)、生物及生命科學(xué)等領(lǐng)域有著廣泛應(yīng)用,其特點(diǎn)在于使用可視化圖標(biāo)來(lái)替代文本輸入的方式進(jìn)行相關(guān)代碼程序的創(chuàng)建編寫(xiě)[6]。LabVIEW中的視覺(jué)開(kāi)發(fā)模塊擁有強(qiáng)大的機(jī)器視覺(jué)處理庫(kù),且可以與多種編程軟件間實(shí)現(xiàn)相互調(diào)用,進(jìn)而完成各種關(guān)于圖像處理、視覺(jué)運(yùn)行、數(shù)據(jù)采集的控制。相比于MATLAB,Lab-VIEW的輸入對(duì)象不僅可以是存儲(chǔ)的圖像文件,還可以是從攝像頭等硬件探測(cè)器獲取的圖像數(shù)據(jù),且圖形化的編程語(yǔ)言會(huì)使輸入輸出更為直觀,數(shù)據(jù)的流向也更為具體。由于LabVIEW程序的編寫(xiě)更接近于實(shí)物上位機(jī)系統(tǒng)的構(gòu)成模式,
圖1LabVIEW前面板
圖1 中左半邊為處理前的圖像在LabVIEW 從而也較容易激發(fā)學(xué)生的興趣。然而就代碼的核心部分而言,LabVIEW在處理矩陣運(yùn)算時(shí)卻不如MATLAB的m文件方便。據(jù)此,提出了在LabVIEW的平臺(tái)上使用MATLAB腳本來(lái)處理核心的代碼部分,結(jié)合二者的優(yōu)勢(shì),通過(guò)梯度設(shè)置難度不同的圖像處理實(shí)驗(yàn)內(nèi)容,幫助學(xué)生掌握和運(yùn)用數(shù)字圖像處理課程的操作技術(shù)與理論方法。
下面以圖像椒鹽噪聲抑制的實(shí)驗(yàn)教學(xué)內(nèi)容為例,探討在LabVIEW平臺(tái)上嵌入MATLAB腳本編程的實(shí)驗(yàn)設(shè)計(jì)方法和實(shí)驗(yàn)設(shè)計(jì)過(guò)程。
椒鹽噪聲抑制是數(shù)字圖像去噪的一項(xiàng)基礎(chǔ)實(shí)驗(yàn)內(nèi)容。這種類型噪聲通常是指由圖像傳輸處理中產(chǎn)生的黑白相間的亮暗點(diǎn)噪聲,又稱雙極脈沖噪聲,對(duì)圖像的視覺(jué)效果有明顯的破壞。為了抑制圖像中的椒鹽噪聲,一般在3×3的濾波模版內(nèi)采用中值濾波算法對(duì)其進(jìn)行抑制,同時(shí)保持圖像的邊界像素不變。對(duì)于一幅8位量化、分辨率為M×N的含椒鹽噪聲的數(shù)字圖像,設(shè)Ω為其任意的一個(gè)3×3的濾波模版,通過(guò)中值濾波可以得到模版中心位置(i,j)處的像素值為
其中,Y(i,j)為最終的輸出圖像。通過(guò)中值濾波處理可以很好地抑制圖像中的椒鹽噪聲,改善圖像的視覺(jué)質(zhì)量。為了讓學(xué)生更好地理解算法的處理過(guò)程,將圖像的輸入輸出與算法處理分別在Lab-VIEW平臺(tái)和MATLAB中進(jìn)行模擬仿真。算法處理的前面板和程序框圖分別如圖1和圖2所示。
圖2 LabVIEW程序框圖
前面板上的顯示,右半邊為處理后的結(jié)果,可以看到經(jīng)處理后圖像質(zhì)量有了較大提高。圖2為L(zhǎng)abVIEW后面板的程序框圖結(jié)構(gòu),整個(gè)框圖由3部分組成。第1部分是從file path路徑讀取原始圖像數(shù)據(jù);第2部分是在LabVIEW中嵌入MATLAB中值濾波處理程序,對(duì)圖像的噪聲進(jìn)行抑制;第3部分是輸出原始圖像和處理后的圖像進(jìn)行對(duì)比。如果在高亮模式下執(zhí)行整個(gè)程序框圖,就可以直觀地看出處理過(guò)程中數(shù)據(jù)的具體流向。另外,在LabVIEW前面板中通過(guò)鼠標(biāo)懸停,可以得到處理前后圖像中任意一點(diǎn)灰度值的改變情況,便于評(píng)價(jià)圖像的處理效果。從以上處理過(guò)程可以看出,把MATLAB和LabVIEW相結(jié)合進(jìn)行圖像處理,可以最大化地發(fā)揮它們的各自優(yōu)勢(shì),使圖像的處理過(guò)程既高效又形象直觀。在結(jié)合有關(guān)教學(xué)經(jīng)驗(yàn)的基礎(chǔ)上,對(duì)類似實(shí)驗(yàn)內(nèi)容進(jìn)行合理規(guī)劃安排,可以更好地將實(shí)際應(yīng)用與理論算法相結(jié)合,從而加深學(xué)生對(duì)相關(guān)教學(xué)內(nèi)容的理解。
1)在理論教學(xué)中注重使用現(xiàn)代化教學(xué)手段
根據(jù)數(shù)字圖像處理課程的特點(diǎn),恰當(dāng)使用現(xiàn)代化教學(xué)手段,這有利于加快、加深學(xué)生對(duì)原理與方法的理解。實(shí)驗(yàn)教學(xué)效果的好壞較大程度上取決于學(xué)生對(duì)理論課教學(xué)內(nèi)容的理解。當(dāng)學(xué)生明晰圖像處理算法的理論基礎(chǔ)后,通過(guò)模擬仿真及實(shí)際處理前后的效果對(duì)比可進(jìn)一步加深對(duì)知識(shí)點(diǎn)的理解。實(shí)驗(yàn)課與理論課相輔相成,達(dá)到學(xué)以致用的教學(xué)目的。
2)合理運(yùn)用虛擬實(shí)驗(yàn)平臺(tái)
情景教學(xué)模式是以案例或情景為載體引導(dǎo)學(xué)生自主探究學(xué)習(xí),以提高學(xué)生分析和解決實(shí)際問(wèn)題的能力。數(shù)字圖像處理實(shí)驗(yàn)的開(kāi)設(shè)方式較多,應(yīng)盡可能選取學(xué)生容易理解的方法設(shè)置實(shí)驗(yàn)內(nèi)容。通過(guò)基于LabVIEW虛擬平臺(tái)的直觀數(shù)據(jù)輸入、輸出和清晰的數(shù)據(jù)流向脈絡(luò),展示教學(xué)內(nèi)容的重點(diǎn),是一種基于情景教學(xué)模式的教學(xué)方法,有利于調(diào)動(dòng)學(xué)生主動(dòng)探究的興趣。
3)引導(dǎo)學(xué)生選修相關(guān)的程序語(yǔ)言課程
在條件允許的情況下,可以引導(dǎo)學(xué)生選修關(guān)于MATLAB和LabVIEW的選修課程(一般高校都有開(kāi)設(shè)),提前了解與掌握上述程序與軟件的使用方法。
近年來(lái),信息技術(shù)的快速發(fā)展使數(shù)字圖像處理課程變得非常重要。本文通過(guò)結(jié)合LabVIEW虛擬平臺(tái)的情景教學(xué)模式和MATLAB語(yǔ)言編程優(yōu)勢(shì),提出一種新的實(shí)驗(yàn)教學(xué)設(shè)計(jì)方法。教學(xué)效果表明:該方法有利于調(diào)動(dòng)學(xué)生在實(shí)驗(yàn)教學(xué)中的主動(dòng)性與積極性,提升學(xué)生對(duì)相關(guān)教學(xué)內(nèi)容的理解能力,使數(shù)字圖像處理實(shí)驗(yàn)教學(xué)能更好地服務(wù)于“厚基礎(chǔ)、寬口徑、強(qiáng)技能”的應(yīng)用型本科人才培養(yǎng)目標(biāo)。