寧志剛,尹軍利,李圣,夏云芝
(南華大學 電氣工程學院,湖南 衡陽)
數字圖像處理是一門多學科交叉學科[1-3],與機器視覺一脈相承,與光電成像、信號處理、軟件編程和數學算法等相關。數字圖像處理知識比較繁雜,概念比較多,理論性比較強,很多知識點不好理解[4]。數字圖像處理對實踐教學環(huán)節(jié)要求比較高,要求學生既要理解相關的理論和算法,又能動手解決一些實際問題。對于復雜的概念、繁瑣的數學推導和復雜的圖像處理算法,大多數同學學起來都會感到不好理解,產生畏難情緒,逐漸喪失學習這門課的興趣。所以,教這門課時一定要采取合適的教學方法,讓學生理解和掌握相關的概念、算法,體味學習這門課程的樂趣。數字圖像處理教學既要注重理論知識和算法的講解,又要想辦法培養(yǎng)學生的實踐動手能力。Matlab學起來不難,編程技巧容易掌握。Matlab軟件具有圖像處理工具箱和許多圖像處理函數,能使圖像處理運行結果可視化[5-6],便于學習和驗證一些圖像處理算法。在理論教學過程中讓學生觀察生成的圖片和一些中間數據,以增加學生的感性認識,提高學生的學習興趣[7-8]。教師可以分析生成的圖片和中間數據,讓學生較容易理解和掌握深奧的理論知識。
在講授這門課程時,先要讓學生弄清楚學習這門課程的意義,從而激發(fā)學生學習這門課程的興趣和學習動力。許多數字圖像處理方法都是根據仿生機理得到的,例如圖像采集就是參照人眼成像原理,雙目視覺和3D成像也是參考人雙眼觀察外部事物的機理,神經網絡或深度學習就是仿照人的神經系統思維模型。學生學完這門課程后,可以根據仿生機理學習和研究一些算法,設計一些機器視覺系統。人從外界獲得的信息當中,80%以上的信息都是通過視覺獲得的。與其他傳感器相比較,視覺傳感器獲得的信息量要大得多。人工智能是目前的研究熱點之一,機器人是人工智能具體應用對象,機器人從外界獲取的大量信息通常是通過機器視覺獲得的。為了提高我國的綜合實力,國防、工業(yè)和農業(yè)都在加速發(fā)展,各行各業(yè)都向數字化、信息化、智能化方向發(fā)展,數字圖像處理在很多領域得到應用和發(fā)展。中國“祝融”號火星車在火星上拍攝了一些圖像,并把這些圖像傳回給幾千萬公里以外的地球?!坝裢谩碧栐虑蜍嚦晒Φ顷懺虑虮趁?,并傳回大量的圖片。大量遙感衛(wèi)星在地球上空運行,遙感圖像最高分辨率可達到零點幾米。在一些高輻射、有毒和高溫場合,必須采用機器人代替人從事相關的檢測和控制工作。例如,在福島核泄漏事故中,須利用機器人完成相關的檢測工作。國防科技大學成功開發(fā)了非結構化道路無人戰(zhàn)車,一些汽車生產商開發(fā)了無人駕駛智能車輛。大街小巷和智能小區(qū)都安裝了攝像頭,用來進行交通管理和安防監(jiān)控。機器視覺可以提高測量精度,精度可達到亞像素級別,測量精度可達到千分之一毫米。為了減少勞動成本和提高生產率,工業(yè)和農業(yè)都采用大量機器視覺設備。許多工業(yè)生產線都裝備了用于檢測的機器視覺裝置和用于控制的機器手或機器臂。在農業(yè)方面,許多科研部門正在研發(fā)自動播種機、自動插秧機、噴藥無人機、自動收播機和采摘機器人。通過講解這些鮮活的案例,讓學生知道學好這門課的重要性,了解數字圖像處理應用領域十分廣闊,應用前景十分看好,樹立學好這門課的信心。
對于數字圖像處理理論課程教學,傳統的教學模式是“課件+板書”模式。這種灌輸式教學模式的教學效果不好,學生學起來容易感到枯燥無味,很難理解和掌握課程的重點和難點。結合數字圖像處理的特點和Matlab軟件的優(yōu)勢,數字圖像處理理論課程教學可采用Matlab計算機輔助教學。教學時,教師先講解理論知識的要點,然后通過Matlab運行相關的例程或指令。這種教學模式具有一些優(yōu)勢,具體為:(1)將抽象的理論形象化,能夠培養(yǎng)學生的形象思維能力。教學過程中引入一些具體的案例,通過觀察具體的圖像能激發(fā)學生的思維興奮點,可提高學生的學習興趣。這種教學能夠活躍課堂氣氛,提高教學效果。(2)教學時引入仿真案例,做到理論聯系實際。教學過程中,教師可展示生成的圖像和相關運行數據,分析運算結果。這樣可以驗證具體的算法,幫助學生理解和消化相關的知識點,優(yōu)化課堂教學,提高教學質量。(3)采用Matlab計算機輔助教學,可將研討式、啟發(fā)式等教學方式應用到教學過程當中。教學時,通過觀察運算結果,分析和討論具體的算法,修改程序代碼,啟迪學生思維,引導學生探究其中的奧秘,從而提高分析問題和解決問題的能力,提高工程應用能力和工程創(chuàng)新能力。
(1)案例一:圖像代數運算。圖像代數運算包括加法、減法、乘法和除法運算。Matlab中圖像默認數據類型為uint8,數據取值范圍是0~255。如果運算結果或中間值超過這一范圍,就會出現飽和溢出現象。圖像進行加法運算時,如果對應像素灰度值之和大于255,Matlab就會將數據截取為數據類型支持的最大值255。圖像進行減法運算時,如果對應像素灰度值之差小于0,Matlab就會將數據截取為數據類型支持的最小值0。double數據類型是小數,數據取值范圍是-1.79769313486231570E+308~+1.797 69313486231570E+308。對于圖像代數運算,如果把uint8數據類型轉換為double類型,運算結果就不會出現飽和溢出現象,運算結果就不會出錯。在進行圖像代數運算時,分別采用兩種數據類型進行圖像代數運算實驗。打開工作空間窗口,查看變量的類型和變量數值矩陣,對比分析運算結果,總結圖像代數運算的注意事項。
(2)案例二:圖像增強??沼騼葓D像增強的主要目的是改善圖像的視覺效果,提高圖像的可辨識度。圖像增強就是調整灰度圖像的明暗對比度,對圖像中各個像素的灰度值直接進行處理,增強原圖像相鄰像素灰度的反差。針對所給定圖像的應用場合,有目的地強化圖像的整體或者局部特性,使原來不清晰的圖像變得清晰,突出某些感興趣的特征(例如邊緣信息、輪廓信息、對比度),擴大圖像中不同物體特征之間的差別,抑制不感興趣的特征。直方圖均衡化是由概率密度和分布函數得到的圖像增強方法,目的是使不同灰度值像素的個數(或不同灰度值像素個數與圖像總像素個數比值)近似相等。分段線性灰度變換用來突出圖像中感興趣對象,采用局部擴展拉伸某一范圍的灰度值,或者對不同范圍的灰度值進行不同的拉伸處理。分析直方圖均衡化工作原理,分別采用線性灰度變換、分段線性灰度變換、非線性灰度變換和直方圖均衡化進行圖像增強,查看圖像增強后的視覺效果,對比分析圖像增強前后的灰度直方圖。
(3)案例三:圖像空域濾波。中值濾波主要用來濾除椒鹽噪聲,均值濾波和維納濾波主要用來濾除高斯噪聲。濾波窗口越大,往往濾波效果越好,但圖像細節(jié)會遭到破壞。分析均值濾波、中值濾波和維納濾波工作原理,給圖像分別添加高斯噪聲和椒鹽噪聲,分析和比較不同類型濾波器的濾波特性和濾波效果,分析窗口大小對濾波效果的影響。
(4)案例四:傅立葉變換及頻域濾波。圖像傅立葉變換是將圖像的灰度分布函數變換為圖像的頻率分布函數。圖像二維傅立葉變換得到的頻譜圖,實質反映圖像梯度分布情況。梯度分為水平梯度和垂直梯度,梯度的平方和再開方就是該點頻率的大小。頻譜圖上看到的明暗不一的亮點,實際上反映圖像二維傅立葉變換某一頻率幅值的大小。若某一頻率對應的幅值越大,則頻譜圖中該頻率處越亮。頻譜圖中高頻信號對應于原圖像中邊緣和噪聲部分,頻譜圖中低頻信號對應于原圖像中平滑區(qū)域。分析二維傅立葉變換工作原理。對圖像進行二維離散傅立葉變換,在工作空間窗口中查看變量數值矩陣的元素是否復數,驗證圖像傅立葉變換旋轉不變性和縱橫性。分別選取不同的截止頻率,查看高通濾波器和低通濾波器的濾波效果。分析同態(tài)濾波工作原理。同態(tài)濾波能減少低頻分量,增加高頻分量,減少光照變化,銳化邊緣細節(jié),達到揭示陰影區(qū)細節(jié)特征的目的。同態(tài)濾波能調整圖像灰度范圍,通過消除圖像中照明不均的問題,增強暗區(qū)的圖像細節(jié),同時又不損失亮區(qū)的圖像細節(jié)。對照度不均勻圖像進行同態(tài)濾波,檢驗濾波效果。
(5)案例五:圖像分割。圖像分割主要包括基于區(qū)域的圖像分割方法和基于邊緣的圖像分割方法。采用基于區(qū)域的圖像分割方法對圖像進行分割,分割的圖像通常存在過分割現象。采用基于邊緣的圖像分割方法對圖像進行分割,分割圖像的邊緣通常不連續(xù)。Canny邊緣算子既能濾除噪聲,又能保持邊緣,提取邊緣的連續(xù)性較好。分析邊緣提取工作原理,分別采用Roberts算子、Prewitt算子、Sobel算子、Laplacian算子、LOG算子、Canny算子提取圖像的邊緣,查看邊緣提取后的圖像是否二值圖像。采用雙峰法分割圖像,根據灰度直方圖確定分割閾值,對比分析采用不同閾值分割圖像的效果。分析Otsu閾值分割法、迭代式閾值分割法工作原理,分別采用這兩種分割法分割圖像,查看分割閾值的大小。分析分水嶺分割法的工作原理,采用這種多閾值分割法分割圖像,查看工作空間窗口中生成圖像對應變量矩陣的取值。
(6)案例六:形態(tài)學處理。膨脹將與物體接觸的所有背景點合并到該物體中,使邊界向外部擴張。通過膨脹,可以填充圖像中的小孔、圖像邊緣處的小凹陷部分。腐蝕能消除邊界點,使邊界向內部收縮。利用腐蝕操作,可以消除較小的無意義物體。開運算使圖像的輪廓變得光滑,斷開狹窄的連接,消除細毛刺,消除細小物體,在纖細處分離物體。閉運算使輪廓變得光滑,彌合狹窄的小裂縫,填充比結構元素小的洞(即小孔),連接鄰近物體。結構元素是膨脹和腐蝕的最基本組成部分。二維結構元素是由數值0和1組成的矩陣。結構元素的原點指定了圖像中需要處理的像素范圍,結構元素中數值為1的點決定結構元素的領域像素在膨脹或腐蝕操作時是否參與運算。分析膨脹、腐蝕、開運算、閉運算原理、實現過程和作用。講解結構元素的定義,在Matlab中利用help指令運行strel函數,查看各種結構元素具體形狀。在Matlab中對特定的二值矩陣分別進行膨脹、腐蝕運算,觀察生成的二值矩陣,驗證膨脹、腐蝕實際運算過程,掌握結構元素原點確定方法,分析結構元素大小選擇的原則。對圖像分別進行開運算、閉運算操作,根據生成的圖像驗證開運算、閉運算的作用。
(7)案例七:彩色目標提取。彩色圖像模型包括RGB模型、HSV模型、CMYK模型、YUV模型、YCbCr模型、I1I2I3模型等,I1I2I3模型適合提取彩色圖像中的目標。分析各種色彩模型特點和相互轉化方法。從彩色甜椒(由青甜椒和紅甜椒組成)圖像中提取甜椒,分別查看R、G、B、I1、I2和I3色彩通道直方圖。經比較發(fā)現,只有I2色彩通道直方圖具有明顯的雙峰。所以,對I2分量圖進行圖像分割,可以分割出甜椒圖像。通過這個例程告訴學生彩色目標提取方法,I1I2I3色彩模型對彩色圖像具有較好的分割效果。
數字圖像處理教學采用Matlab計算機輔助教學方法,獲得了較好的教學效果。采用這種方法進行課堂教學,能增強課堂教學的互動性,很容易吸引學生的注意力,使學生全身心投入教學過程當中。這種教學方法能夠使學生較好地掌握了復雜的理論知識,提高了發(fā)現問題、分析問題和解決問題的能力,提高了數字圖像處理Matlab編程能力,為學生從事科技活動、就業(yè)和深造奠定了良好的基礎。