LabVIEW圖像增強(qiáng)算法(基礎(chǔ)篇—5)
在采集或傳遞圖像的過(guò)程中常會(huì)受到各種噪聲的影響,這會(huì)導(dǎo)致其中包含的重要信息很難被讀取和識(shí)別。例如,不均勻的光照會(huì)使圖像灰度過(guò)于集中;攝像頭的數(shù)模轉(zhuǎn)換電路所產(chǎn)生的噪聲會(huì)使圖像質(zhì)量降低;圖像顯示設(shè)備的局限性會(huì)造成圖像顯示顏色減少等。
因此,在對(duì)圖像進(jìn)行分析處理之前,必須對(duì)圖像進(jìn)行增強(qiáng),使其更適合人或機(jī)器進(jìn)一步分析處理。
圖像增強(qiáng)是圖像處理的一個(gè)重要分支。它針對(duì)給定圖像的應(yīng)用場(chǎng)合,通過(guò)各種算法增強(qiáng)圖像中的有用信息,有目的地強(qiáng)調(diào)圖像的整體或局部特性,抑制不感興趣的區(qū)域,擴(kuò)大圖像中不同特征之間的差別,改善圖像質(zhì)量,加強(qiáng)圖像判讀和識(shí)別效果,使圖像更能滿足分析或機(jī)器決策的需要。
圖像增強(qiáng)一般并不能增加原圖像信息,但是能針對(duì)一些成像條件,突出微弱信號(hào),使信息更容易分辨。圖像增強(qiáng)算法根據(jù)處理過(guò)程所在的空間不同,可分為基于空間域的算法和基于頻率域(變換域)的算法兩大類,如下圖所示:
在空域中,圖像增強(qiáng)主要通過(guò)對(duì)不同位置的像素灰度及其變化方向進(jìn)行操作來(lái)實(shí)現(xiàn),而在頻域中圖像增強(qiáng)則主要通過(guò)對(duì)空間頻率(spatial frequency)進(jìn)行操作來(lái)實(shí)現(xiàn)。
除了為圖像理解和機(jī)器識(shí)別、決策作準(zhǔn)備外,圖像增強(qiáng)自身的應(yīng)用領(lǐng)域也十分廣闊。例如:在軍事應(yīng)用中,可增強(qiáng)紅外圖像中感興趣的敵軍目標(biāo);在醫(yī)學(xué)應(yīng)用中,可增強(qiáng)X射線所拍攝的患者腦部、胸部圖像來(lái)確定病癥的準(zhǔn)確位置;在空間應(yīng)用中,對(duì)用太空照相機(jī)傳回的圖像進(jìn)行增強(qiáng)處理以改善圖像的質(zhì)量;在農(nóng)業(yè)應(yīng)用中,增強(qiáng)遙感圖像以了解農(nóng)作物的分布;在交通應(yīng)用中,對(duì)大霧天氣圖像進(jìn)行增強(qiáng)以加強(qiáng)車牌、路標(biāo)等重要信息進(jìn)行識(shí)別等。
1
空間域圖像增強(qiáng)算法
空間域圖像增強(qiáng)算法直接對(duì)圖像進(jìn)行點(diǎn)運(yùn)算或鄰域處理。
點(diǎn)運(yùn)算直接對(duì)像素灰度進(jìn)行點(diǎn)對(duì)點(diǎn)映射,常見的點(diǎn)運(yùn)算包括:灰度變換、直方圖匹配(修正)和直方圖均衡,以及某些圖像的算數(shù)或邏輯運(yùn)算等。圖像的鄰域增強(qiáng)則以某一像素為中心,綜合該像素及其周圍某一范圍內(nèi)(鄰域)像素的灰度值進(jìn)行計(jì)算,并將計(jì)算結(jié)果作為中心像素新的灰度值。
根據(jù)輸出像素是否是輸入像素及其鄰域內(nèi)像素的線性組合,可將圖像鄰域增強(qiáng)方法分為線性和非線性兩大類。每一類方法又可分為低通濾波和高通濾波方法。低通濾波算法可以濾除圖像中的高頻噪聲,使其變得更平滑;高通濾波則可以增強(qiáng)圖像中目標(biāo)的輪廓或邊緣等高頻細(xì)節(jié),使其更銳化。
1.1、線性卷積
1.1.1、一維卷積
圖像在空間域的增強(qiáng)常通過(guò)線性卷積運(yùn)算來(lái)實(shí)現(xiàn),它通過(guò)在圖像中滑動(dòng)一個(gè)模板,不斷根據(jù)鄰域像素的值計(jì)算各個(gè)像素的新值來(lái)完成計(jì)算過(guò)程。
根據(jù)信號(hào)處理理論,線性時(shí)不變系統(tǒng)可通過(guò)其傳遞函數(shù)來(lái)描述。如果忽略線性系統(tǒng)的內(nèi)部細(xì)節(jié),則線性系統(tǒng)在時(shí)域可抽象為輸入信號(hào)f(t)與其傳遞函數(shù)沖擊響應(yīng)h(t)的卷積(Convolution),在頻域則可抽象為輸入信號(hào)F(s)與其傳遞函數(shù)沖擊響應(yīng)h(s)的乘積。下圖顯示了基于傳遞函數(shù)的線性系統(tǒng)模型:

卷積運(yùn)算為積分運(yùn)算,它反映了函數(shù)h(T)被反轉(zhuǎn)為h (-T)后,沿r軸在另一個(gè)函數(shù)f(T)上移動(dòng)時(shí),與其所重疊部分乘積的積分。下圖顯示了兩個(gè)函數(shù)進(jìn)行卷積計(jì)算時(shí)的反轉(zhuǎn)、平移及相乘和積分過(guò)程。

對(duì)于離散信號(hào)來(lái)說(shuō),假定有兩個(gè)長(zhǎng)度分別為m和n的序列f(i)和h(j),則它們的積分將輸入長(zhǎng)度為(m+n-1)的序列,可表示為:
離散信號(hào)的卷積過(guò)程與連續(xù)信號(hào)類似,不同之處在于其中一個(gè)序列被反轉(zhuǎn)、平移后,與另一序列重疊的對(duì)應(yīng)點(diǎn)相乘后是進(jìn)行求和運(yùn)算。下圖顯示了兩個(gè)離散序列的卷積計(jì)算過(guò)程:

如果換個(gè)角度,將其中一個(gè)序列反轉(zhuǎn)后的值看作是它與另一序列重疊時(shí)對(duì)應(yīng)點(diǎn)的權(quán)重,則卷積可以被看作是“加權(quán)求和”操作。
若再進(jìn)一步,反轉(zhuǎn)后的序列的值均為歸一化后的值,則卷積可以被看作是對(duì)一組序列進(jìn)行“加權(quán)平均"操作。若線性時(shí)不變系統(tǒng)為二維系統(tǒng),則可表示為以下連續(xù)和離散形式:
連續(xù)形式為:
離散形式為:
此外,如果二維線性系統(tǒng)可分離,即h (x, y) =h1(x)h2 (y),則線性系統(tǒng)可分解為兩個(gè)一維卷積:

離散形式為:
這意味著在進(jìn)行二維卷積計(jì)算時(shí),可以將其分解為連續(xù)的兩次一維卷積計(jì)算。在工程實(shí)踐中,這種分解往往會(huì)極大地降低程序算法的計(jì)算量,提高計(jì)算速度。
1.1.2、二維卷積
二維連續(xù)信號(hào)的卷積計(jì)算過(guò)程與一維卷積邏輯上類似。
計(jì)算時(shí)可以先將其中一個(gè)信號(hào)h(u,v)沿其原點(diǎn)旋轉(zhuǎn)180°,然后以原點(diǎn)為中心沿u軸和v軸平移該信號(hào)(u軸平移x,v軸平移y)再將兩個(gè)信號(hào)重疊部分相乘并積分,即得到原點(diǎn)處的輸出。若信號(hào)為二維離散信號(hào),則可以先將其中一個(gè)離散點(diǎn)陣序列h(m,n)沿其中心點(diǎn)旋轉(zhuǎn)180°,然后以中心點(diǎn)沿另一離散點(diǎn)陣序列f(m,n)的橫向和縱向滑動(dòng),每到一個(gè)位置,就把兩個(gè)序列重疊的對(duì)應(yīng)元素(中心點(diǎn)的鄰域)相乘并且求和,即可得到該點(diǎn)的卷積。
若將離散二維信號(hào)f (m,n)看作是待處理的數(shù)字圖像,并使h(m,n)點(diǎn)陣沿其中心對(duì)稱(即旋轉(zhuǎn)180°前后結(jié)果相同),就可以通過(guò)直接在數(shù)字圖像f(m,n)中滑動(dòng)h(m,n)完成圖像的卷積運(yùn)算。此時(shí),被旋轉(zhuǎn)180°后的h(-m,-n)點(diǎn)陣或沿中心對(duì)稱的離散點(diǎn)陣h(m,n)被稱為模板或卷積核(converlution kernel)。
圖像卷積計(jì)算屬于一種鄰域處理方法。理論上來(lái)說(shuō),卷積核可以為任意尺寸,但是為了處理方便,它實(shí)際上常被設(shè)計(jì)為3×3、5×5或7×7等方形陣列。卷積核的類型決定了卷積運(yùn)算對(duì)圖像中的像素如何進(jìn)行變換,卷積核中的元素值(權(quán)重)定義了它所覆蓋的像素對(duì)中心像素的影響。在計(jì)算時(shí),將卷積核由圖像的左上角到右下角逐點(diǎn)平滑移動(dòng),每次滑動(dòng)至一個(gè)新像素,都將卷積核中的每一因子作為權(quán)重值(絕對(duì)值越大,對(duì)中心點(diǎn)的影響越大),與它所覆蓋的圖像范圍內(nèi)的像素做加權(quán)求和,得到的結(jié)果作為它所覆蓋的圖像部分中心點(diǎn)的像素值。
下圖顯示了使用一個(gè)大小為3×3的卷積核對(duì)圖像進(jìn)行卷積運(yùn)算時(shí)的過(guò)程。卷積核沿著圖像左上角逐行、逐列滑動(dòng)至右下角最后一個(gè)像素點(diǎn)。對(duì)于每次移動(dòng),卷積核中的9個(gè)元素P(x,y)都會(huì)和它覆蓋的圖像中對(duì)應(yīng)的像素K(x,y)相乘并求和,得到的結(jié)果∑K (x, y)·P (x,y)將作為卷積核中心點(diǎn)在圖像中所覆蓋的像素P(x,y)的新值。當(dāng)卷積核沿著所有像素滑動(dòng),并均完成前述計(jì)算后,圖像的卷積計(jì)算即完成。

在機(jī)器視覺和圖像處理系統(tǒng)開發(fā)過(guò)程中,卷積運(yùn)算常用于對(duì)圖像在空間域進(jìn)行增強(qiáng)。具體是濾除圖像中的噪聲還是增強(qiáng)目標(biāo)的輪廓或邊緣等高頻細(xì)節(jié),由所選擇的卷積核決定。
1.2、領(lǐng)域增強(qiáng)
圖像的鄰域增強(qiáng),就是在空間域?qū)ζ溥M(jìn)行高通或低通濾波,以消除其中的噪聲,銳化圖像的輪廓,沿某一方向銳化目標(biāo)的邊緣等。
圖像的空間域?yàn)V波直接根據(jù)像素及其周圍鄰域內(nèi)的像素值,通過(guò)某種計(jì)算或變換得到新的像素值來(lái)實(shí)現(xiàn)濾波功能。如果輸出像素是輸入像素及其鄰域像素的線性組合,則稱為線性濾波,否則稱為非線性濾波(中值濾波、邊緣保持濾波等)。例如,基于卷積的圖像鄰域加權(quán)求和濾波就是一種空間域的線性濾波方法,而中值濾波等非加權(quán)計(jì)算形式的濾波則為非線性濾波。
一般來(lái)說(shuō),線性平滑濾波對(duì)去除各種噪聲(如高斯噪聲)較為有效。但是當(dāng)信號(hào)頻譜與噪聲頻譜混疊,或者當(dāng)信號(hào)中含有非疊加性噪聲時(shí)(如由系統(tǒng)非線性引起的噪聲或非高斯噪聲等),線性濾波在濾除噪聲時(shí),總會(huì)以某種方式模糊圖像中的邊緣和細(xì)節(jié),進(jìn)而降低圖像中線性特征的可識(shí)別性。非線性濾波器?;谀撤N非線性映射關(guān)系,把某一特定的噪聲近似地映射為零而保留信號(hào)的重要特征,因而其在一定程度上能克服線性濾波器的不足之處。
NI Vision為圖像的鄰域增強(qiáng)提供了眾多濾波函數(shù),它們位于LabVIEW的Vision and Motion→Image Processing→Filters圖像空間域?yàn)V波函數(shù)選板中。使用這些函數(shù)可以對(duì)圖像進(jìn)行線性或非線性高通、低通濾波,實(shí)現(xiàn)銳化圖像中目標(biāo)邊緣、輪廓和細(xì)節(jié)或?qū)ζ溥M(jìn)行平滑降噪的功能。位置如下所示:

函數(shù)說(shuō)明及使用可參見幫助手冊(cè):

1.2.1、線性濾波
機(jī)器視覺系統(tǒng)開發(fā)過(guò)程中,常用的基于卷積計(jì)算的線性濾波方法有線性梯度算子(Linear Gradient)、拉普拉斯算子(Laplacian)、平滑濾波(Smoothing)和高斯算子(Gaussian)4種。其中,前兩種方法用于銳化圖像中灰度變化較快的高頻邊緣或紋理細(xì)節(jié);后兩種方法則用于濾除高頻噪聲和細(xì)節(jié),使圖像更平滑。下表對(duì)常用的線性濾波方法進(jìn)行了匯總:

鄰域增強(qiáng)中的線性濾波多基于卷積運(yùn)算,卷積核的尺寸限定了處理時(shí)的鄰域大小,卷積核中的元素值設(shè)定了各鄰域像素對(duì)中心像素影響的權(quán)重值,其絕對(duì)值越大,對(duì)中心像素的影響越大。如果卷積核中的因子有正有負(fù),則濾波過(guò)程相當(dāng)于鄰域像素求權(quán)重差,其效果相當(dāng)高通濾波;而如果卷積核中只有正因子,那么濾波過(guò)程相當(dāng)相當(dāng)于鄰域像素求權(quán)重和,其效果相當(dāng)?shù)屯V波。線性梯度、Laplacian算子屬于前一類,而高斯和平滑濾波屬于后者。
Nl Vision使用IMAQ Convolute和IMAQ GetKernel或IMAQ BuildKernel配合,在空間域?qū)D像進(jìn)行線性濾波。
IMAQ Convolute可使用由Kernel參數(shù)指定的卷積核對(duì)圖像進(jìn)行卷積運(yùn)算,而IMAQ GetKernel和IMAQ BuildKernel則用于獲取Nl Vision預(yù)定義的卷積核,或由字符串構(gòu)建卷積核,以傳遞給IMAQ Convolute的Kernel參數(shù),如下圖所示:

IMAQ BuildKernel搜索由逗號(hào)或分號(hào)分隔的字符串(各行由換行符分隔),將其中的數(shù)字轉(zhuǎn)換為卷積核;IMAQ GetKernel通過(guò)卷積核的編碼(Kernel Code)來(lái)索引NIVision預(yù)定義的卷積核。卷積核的編碼由4位數(shù)字構(gòu)成,其中千位代表卷積核的分類碼(Kernel family),百位代表卷積核的尺寸(Kernel Size),個(gè)位和十位共同代表卷積核的編號(hào)(Kernel Number)。例如,大小為3×3的梯度算子中,第14個(gè)算子編碼為1314。
Nl Vision共預(yù)定義了梯度、拉普拉斯、平滑和高斯4大類卷積核,不同卷積核的大小、作用各不相同,且都能通過(guò)卷積核的類別、尺寸及編號(hào)進(jìn)行索引。
1.2.2、非線性濾波
非線性濾波方法也可分為進(jìn)行邊緣檢測(cè)的高通濾波和去除圖像中雜散點(diǎn)的低通濾波兩大類。
常用的非線性邊緣檢測(cè)(高通)方法有非線性梯度(Nonlinear Gradient)、Roberts、差值(Differentiation) 、Sobel、Prewitt、Sigma和Canny 7種。非線性低通濾波方法則有中值(Median)濾波、N階濾波器、低通(Lowpass)濾波3種。下表對(duì)常用的非線性濾波方法進(jìn)行了匯總:

與線性濾波方法類似,空間域的非線性濾波方法也常使用濾波算子,基于像素的鄰域進(jìn)行計(jì)算,但是其計(jì)算函數(shù)往往并非線性函數(shù)。若用P (x,y)格式表坐標(biāo)為(x,y)的像素值,則可通過(guò)像素灰度的非線性函數(shù)來(lái)表示各種非線性濾波算法。
非線性梯度、Roberts和差值濾波過(guò)程均基于像素左上方2×2的鄰域進(jìn)行。非線性梯度濾波對(duì)該鄰域內(nèi)的像素兩兩沿垂直方向求其差值的絕對(duì)值,并取其中較大者作為新像素值。Roberts濾波過(guò)程與非線性梯度濾波計(jì)算過(guò)程類似,但它是沿對(duì)角線方向,對(duì)像素左上方向2×2鄰域內(nèi)的像素兩兩求差值的絕對(duì)值,并取其中較大者作為新元素值。差值濾波過(guò)程則對(duì)像素左上方向2×2鄰域內(nèi)的像素,沿各個(gè)方向兩兩求差值的絕對(duì)值,并取其中較大者作為新元素值。
通過(guò)使用IMAQ Convolute對(duì)圖像進(jìn)行平滑濾波、IMAQ EdgeDetection對(duì)圖像進(jìn)行非線性高通濾波(包括非線性梯度、Roberts、差值、Sobel、Prewitt濾波和下面將要講到的Sigma濾波)、IMAQ LowPass和IMAQ NthOrder實(shí)現(xiàn)圖像的非線性低通濾波、IMAQ CannyEdgeDetection實(shí)現(xiàn)Canny算法的實(shí)例程序了解線性濾波、非線性濾波和Canny算法的使用方法,由于這是一個(gè)程序中集成了多個(gè)圖像處理功能,分別講講各個(gè)功能設(shè)計(jì)思路。
線性濾波功能模塊設(shè)計(jì)思路如下所示:
程序一開始先為圖像處理分配內(nèi)存,并將圖像fig.tif讀入內(nèi)存緩沖區(qū),然后進(jìn)入While循環(huán);
While循環(huán)首次執(zhí)行時(shí),將比較用戶所選擇的濾波方式Filter及各圖像增強(qiáng)VI的參數(shù)Kernel Size、Kernel#、Size & Tolerance及Size & Order是否與Parameter簇常量中的默認(rèn)值不同,若有變化,程序即進(jìn)入包含各種濾波Vl的分支;
當(dāng)從Filter控件中選擇Smooth濾波方式時(shí),分支結(jié)構(gòu)中的代碼將調(diào)用IMAQ GetKernel,根據(jù)輸入?yún)?shù)獲取NIVision預(yù)定義的卷積核,并傳遞給IMAQ Convolute對(duì)圖像進(jìn)行卷積運(yùn)算;
當(dāng)循環(huán)繼續(xù)執(zhí)行時(shí),程序?qū)⒈容^用戶的輸入與上次循環(huán)執(zhí)行時(shí)是否有變化,若任何輸入發(fā)生變化,程序都會(huì)再次進(jìn)入包含濾波代碼的分支;
當(dāng)用戶單擊STOP按鈕時(shí),程序?qū)⑼顺鲅h(huán)釋放緩沖區(qū),結(jié)束程序執(zhí)行;
實(shí)例中,用戶選擇了對(duì)圖像進(jìn)行平滑濾波,所選用的卷積核大小為5×5,編號(hào)為#0。
非線性高通濾波功能模塊設(shè)計(jì)思路如下所示:
只需通過(guò)它的Method參數(shù)選擇所需的濾波方式即可。程序結(jié)構(gòu)與線性濾波功能代碼結(jié)構(gòu)相同,只是從樹形列表控件中選擇了Differentiation濾波方式,從而代碼也相應(yīng)執(zhí)行非線性差值高通濾波分支。由程序的運(yùn)行結(jié)果可以看出,濾波后的圖像邊緣沿多個(gè)方向被增強(qiáng)。
非線性低通濾波功能模塊設(shè)計(jì)思路如下所示:
程序中顯示了基于3×3鄰域?qū)D像進(jìn)行N階非線性低通濾波的實(shí)例;
由于N取4,恰好為鄰域內(nèi)像素排序后中間值的索引,因此相當(dāng)于對(duì)圖像進(jìn)行中值濾波;
由程序的運(yùn)行效果可以看出,原圖像中的椒鹽噪聲幾乎均被濾除;
還使用IMAQ LowPass對(duì)圖像濾波,以及使用IMAQ NthOrder取N=1和N=7時(shí)對(duì)圖像濾波的結(jié)果。
可以看出,當(dāng)N階濾波器的階值小于4時(shí),暗區(qū)域被膨脹,亮區(qū)域被腐蝕,而階值大于4時(shí)則恰好相反。
Canny算法功能模塊設(shè)計(jì)思路如下所示:
Canny算法采用高、低雙閾值法減少假邊緣點(diǎn)的數(shù)量;
若某一像素位置的值超過(guò)高閾值,該像素被保留為邊緣點(diǎn);
若小于低閾值,則被去除;若在兩個(gè)閾值之間,則僅當(dāng)像素與一個(gè)高于高閾值的像素連接時(shí)才被保留;
Canny算法推薦高、低閾值的比例在2:1到3:1之間。
可以較為準(zhǔn)確、有效地確定圖像的邊緣。
程序?qū)崿F(xiàn)如下所示:

程序效果如下所示:

2
頻率域圖像增強(qiáng)算法
2.1、傅里葉變換算法
與空域?yàn)V波的工作方式不同,頻率濾波器并不直接對(duì)圖像像素?cái)?shù)據(jù)進(jìn)行操作,而是先通過(guò)快速傅里葉變換將圖像轉(zhuǎn)換至頻率域,經(jīng)濾波處理后再由傅里葉逆變換(InverseFFT)轉(zhuǎn)換回空域,以達(dá)到圖像增強(qiáng)的目的,如下圖所示:
相對(duì)于空域?yàn)V波來(lái)說(shuō),頻域?yàn)V波有以下兩點(diǎn)主要優(yōu)勢(shì):
1、空域在處理某問(wèn)題時(shí)比較困難,甚至幾乎難以處理;
2、將圖像處理問(wèn)題從空域轉(zhuǎn)換到頻率域上處理時(shí),可以使用一系列成熟的數(shù)字信號(hào)處理方法和工具集。
Nl Vision為傅里葉變換以及圖像頻域計(jì)算提供了現(xiàn)成的函數(shù),它們位于LabVIEW的Vision and Motion→lmage Processing→Frequency Domain函數(shù)選板中,如下圖所示:

函數(shù)的說(shuō)明和使用可參見幫助文檔:

通過(guò)對(duì)一幅圖像進(jìn)行FFT的實(shí)例,了解傅里葉變換的使用方法,程序設(shè)計(jì)思路如下所示:
程序一開始先將圖像讀入內(nèi)存,并使用IMAQ Cast lmage將其轉(zhuǎn)換為復(fù)圖像;
函數(shù)IMAQ FFT對(duì)復(fù)圖像進(jìn)行FFT后,其輸出被連接到圖像顯示控件進(jìn)行顯示;
IMAQ ComplexPlaneTolmage用于提取復(fù)圖像的實(shí)部、虛部、幅度或相位,并以8位、16位或32位浮點(diǎn)數(shù)圖像格式表示;
在本例中,在它從FFT的變換結(jié)果中提取出幅度數(shù)據(jù)并顯示在控件MagF中后,程序?qū)⑨尫潘芯彌_區(qū)并退出。
程序設(shè)計(jì)如下所示:

效果如下所示:

對(duì)比程序運(yùn)行結(jié)果可以發(fā)現(xiàn),使用圖像顯示控件直接顯示復(fù)數(shù)圖像與提取出幅度譜后再顯示的效果完全不同。這是因?yàn)镹l Vision在內(nèi)存中使用標(biāo)準(zhǔn)方式組織FFT的計(jì)算結(jié)果(復(fù)數(shù))。這意味著從FFT計(jì)算得到的幅度數(shù)據(jù)中,高頻部分將分布在圖像的四角,低頻區(qū)域在圖像的中心。但是,當(dāng)使用圖像顯示控件直接顯示復(fù)數(shù)圖時(shí),Nl Vision會(huì)自動(dòng)計(jì)算圖像的幅度譜,并反轉(zhuǎn)高頻和低頻數(shù)據(jù),以中心對(duì)稱模式顯示。即高頻部分居中,低頻部分分布在四角。不僅如此,為了增強(qiáng)幅度的顯示效果,NI Vision還會(huì)為計(jì)算得到的幅度數(shù)據(jù)乘以一個(gè)與圖像長(zhǎng)M和寬N相關(guān)的系數(shù)m,其計(jì)算公式如下:
2.2、圖像頻域?yàn)V波
在圖像處理中,圖像的銳化與平滑處理可通過(guò)空間濾波或頻域?yàn)V波來(lái)完成。從數(shù)學(xué)角度看,空間濾波是將信號(hào)與濾波算子進(jìn)行卷積等運(yùn)算的結(jié)果,具有方法直觀、操作簡(jiǎn)便等優(yōu)點(diǎn)。但當(dāng)要處理的圖像數(shù)據(jù)較大時(shí),若沒有發(fā)現(xiàn)比較高效的算法,就會(huì)有計(jì)算量大、計(jì)算時(shí)間長(zhǎng)以及實(shí)時(shí)性差等缺點(diǎn)。
在頻域?qū)D像進(jìn)行分析、增強(qiáng)時(shí),不僅無(wú)須求解較難的微分方程,而且利用頻譜圖可直觀地揭示系統(tǒng)性能,并可方便地選擇有效抑制噪聲的濾波器。此外,在頻率域上進(jìn)行圖像處理時(shí),還可以使用數(shù)字信號(hào)處理的一系列成熟方法和工具快速解決問(wèn)題。
下表對(duì)常見的頻域低通濾波器的特點(diǎn)進(jìn)行了匯總和比較,可以看出:
理想低通濾波器處理的圖像極為模糊,且含有很嚴(yán)重的振鈴現(xiàn)象,但其對(duì)噪聲的平滑效果好;
梯形低通濾波器的振鈴現(xiàn)象不像理想濾波器那樣嚴(yán)重;
巴特沃斯低通濾波器與指數(shù)低通濾波器相比,圖像模糊程度低,但對(duì)噪聲的平滑效果也差些;
高斯低通濾波器能在有效抑制噪聲的情況下盡可能減小圖像的模糊程度,因此它相對(duì)其他濾波器有較為廣泛的應(yīng)用。

比較下表所列出的幾個(gè)高通濾波器可以發(fā)現(xiàn):
理想高通濾波器處理的圖像邊緣抖動(dòng)現(xiàn)象嚴(yán)重,且同時(shí)保留了邊緣和噪聲;
梯形高通濾波器會(huì)產(chǎn)生輕微抖動(dòng)現(xiàn)象,但因計(jì)算簡(jiǎn)單經(jīng)常被使用;
巴特沃斯濾波器銳化效果較好,邊緣抖動(dòng)不明顯,但計(jì)算復(fù)雜;
指數(shù)高通濾波器比巴特沃斯濾波器效果差些,無(wú)邊緣抖動(dòng)現(xiàn)象;
高斯高通濾波器能在圖像邊緣抖動(dòng)和銳化效果之間獲得較好的平衡。

帶通濾波器可以使某一下限和上限截止頻率范圍內(nèi)的信號(hào)通過(guò),但衰減低于下限截止頻率和高于上限截止頻率的信號(hào)。帶阻濾波器則可以衰減某一下限和上限截止頻率范圍內(nèi)的信號(hào),但允許低于下限截止頻率和高于上限截止頻率的信號(hào)通過(guò)。下圖顯示了理想帶通和帶阻濾波器的時(shí)頻響應(yīng):

在實(shí)際中,帶阻濾波器常用于濾除圖像中的周期性噪聲。周期性噪聲在圖像的頻譜中常以對(duì)稱的形式出現(xiàn),可使用帶阻濾波器濾除頻率在環(huán)形區(qū)域內(nèi)的信號(hào),以消除噪聲??梢钥闯?,帶阻濾波器在去除周期噪聲時(shí)還會(huì)濾除噪聲以外的成分,使圖像中的有用信息減少。如下圖所示:

在LabVIEW中使用NI Vision進(jìn)行圖像濾波的方法可以歸納為4類:
IMAQ ComplexTruncate和IMAQ Mask可以使圖像中指定比例的頻率范圍通過(guò)或衰減,使用它們可以對(duì)圖像進(jìn)行理想低通、理想高通、理想帶通和理想帶阻濾波;
IMAQComplexAttenuate可對(duì)圖像進(jìn)行三角形高通或低通濾波;
IMAQ Mask除了可實(shí)現(xiàn)理想低通、理想高通、理想帶通和理想帶阻濾波器的功能外,還能實(shí)現(xiàn)理想陷波濾波器;
公式法則可以實(shí)現(xiàn)任何形式的頻域?yàn)V波器。
如下表所示:

NI Vision為頻域?yàn)V波操作提供了專門函數(shù),它們位于LabVIEW的視覺與運(yùn)動(dòng)→lmage Processing→Frequency Domain函數(shù)選板中,如下圖所示:

函數(shù)的說(shuō)明和使用可參見幫助文檔:

通過(guò)一個(gè)圖像濾波示例,了解各類型濾波方法的使用方法,程序設(shè)計(jì)思路如下所示:
程序先將圖像讀入內(nèi)存并對(duì)其進(jìn)行傅里葉變換;
隨后使用IMAQ ComplexTruncate生成的理想低通濾波器對(duì)圖像進(jìn)行濾波,其中參數(shù)Truncation Frequency%將低通濾波的截止頻率設(shè)置為圖像頻率范圍的5%處;
濾波完成后對(duì)圖像進(jìn)行傅里葉反變換,獲得濾波后的圖像;
程序在為傅里葉反變換分配緩沖區(qū)時(shí)指定圖像類型為16位灰度圖,這樣NI Vision會(huì)自動(dòng)對(duì)傅里葉反變換的結(jié)果進(jìn)行轉(zhuǎn)換;
觀察程序運(yùn)行結(jié)果,可以發(fā)現(xiàn),使用理想低通濾波器對(duì)圖像進(jìn)行濾波時(shí)會(huì)出現(xiàn)明顯的振鈴現(xiàn)象。
程序設(shè)計(jì)如下所示:

將IMAQ ComplexTruncate實(shí)現(xiàn)的理想低通和高通濾波器進(jìn)行組合,可以實(shí)現(xiàn)理想帶通或帶阻濾波器。具體來(lái)說(shuō),當(dāng)用其實(shí)現(xiàn)的低通和高通濾波器連續(xù)對(duì)某圖像進(jìn)行濾波,且低通濾波器的截止頻率大于高通濾波器的截止頻率時(shí),這種類似串聯(lián)的連續(xù)濾波結(jié)果等效于帶通濾波;當(dāng)用其實(shí)現(xiàn)的低通和高通濾波器分別對(duì)原圖像進(jìn)行濾波后將二者結(jié)果疊加,且低通濾波器的截止頻率小于高通濾波器的截止頻率時(shí),這種類似并聯(lián)的濾波疊加效果等效于帶阻濾波。
程序效果如下所示:

圖像增強(qiáng)一般并不能增加原圖像信息,但是能突出微弱信號(hào),使信息更容易分辨。圖像增強(qiáng)不僅可以在空域進(jìn)行,還能在頻率域進(jìn)行。在頻域處理圖像時(shí),需要先通過(guò)傅里葉變換將圖像轉(zhuǎn)換至頻域,經(jīng)濾波處理后再由傅里葉逆變換轉(zhuǎn)換回空域,以實(shí)現(xiàn)圖像增強(qiáng)。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。