機器視覺系統(tǒng)基于數(shù)字圖像中的信息進行決策庸诱。若系統(tǒng)算法不分主次,讓所有圖像數(shù)據(jù)都參與到目標(biāo)識別或分類的計算過程中喉前,機器視覺系統(tǒng)的實時性就很難得到保證令野。為了確保系統(tǒng)的實時性,最大限度地利用系統(tǒng)的能力蚓峦,有必要關(guān)注"關(guān)鍵信息”舌剂。在機器視覺工程實踐中,通常會先確定一個或多個能有效代表被測目標(biāo)的量化特征暑椰,再基于這些特征完成機器決策任務(wù)霍转,從而提高系統(tǒng)自動識別的能力。
圖像分割是簡化機器視覺算法的有效手段之一一汽。它將圖像分成一些有意義的區(qū)域避消,以便特征提取過程可基于這些區(qū)域提取目標(biāo)的特征。此處提到的區(qū)域是指其中所有像素都相鄰或相接觸的集合角虫,是像素的連通集沾谓。連通集中任意兩個像素之間都存在一條完全由該集合的元素構(gòu)成的連通路徑。連通路徑是一條可在相鄰像素間移動的路徑戳鹅。
圖像分割的基礎(chǔ)是像素的相似性和跳變性均驶,如灰度、紋理相似或突變等枫虏。經(jīng)圖像分割過程得到的區(qū)域一般互不交疊妇穴,每個區(qū)域內(nèi)部的某種特性相同或接近,而不同區(qū)域間的特性則有明顯差別隶债。
圖像分割的方法較多腾它,依據(jù)處理的對象不同可分為點、線和區(qū)域分割法死讹。若根據(jù)分割算法來分瞒滴,則有閾值分割法、邊緣分割法、區(qū)域分割法和形態(tài)學(xué)分割法等妓忍,如下圖所示:
1虏两、圖像閾值分割
圖像閾值分割(thresholding)是一種最常用的圖像分割方法,可將圖像按照不同灰度分成兩個或多個等間隔或不等間隔灰度區(qū)間世剖,對目標(biāo)與背景有較強對比度的圖像分割特別有用定罢。主要利用檢測目標(biāo)與背景在灰度上的差異,選取一個或多個灰度閾值旁瘫,并根據(jù)像素灰度與閾值的比較結(jié)果對像素進行分類祖凫,用不同的數(shù)值分別標(biāo)記不同類別的像素,從而生成二值圖像酬凳。由于物體與背景以及不同物體之間的灰度通常存在明顯差異惠况,在圖像灰度直方圖中會呈現(xiàn)明顯的峰值,因此粱年,若選擇圖像灰度直方圖中灰度分布的谷底作為閾值售滤,即可對圖像進行分割。
閾值分割法可分為全局閾值分割法(Global Thresholding)和局部閾值分割法(localthresholding)台诗。
全局閾值分割法會基于整幅圖像的像素統(tǒng)計信息完箩,選取固定的灰度閾值。它適用于每一幅待處理圖像中光照都均勻分布拉队,或多幅圖像有一致照明的場合弊知;
局部閾值分割法則基于鄰域內(nèi)像素的統(tǒng)計信息,為每個像素計算閾值粱快。它對光線呈傾斜梯度分布或待測目標(biāo)有陰影的情況特別有效秩彤,而在這類情況下全局閾值分割法通常會失效。
1.1事哭、全局閾值分割
全局閾值分割法包括手動閾值分割(manual thresholding)和自動閾值分割
(automatic thresholding)兩大類漫雷。手動閾值分割方法需要人為確定閾值;自動閾值分割方法基于圖像的灰度直方圖來確定灰度閾值鳍咱。
1.1.1降盹、手動閾值分割
手動閾值分割法的閾值選取是關(guān)鍵。若閾值過高谤辜,會有過多的目標(biāo)像素點被誤分為背景蓄坏,閾值選得過低,則會出現(xiàn)相反的情況丑念。
常見的方法有P分法(P-tile)和直方圖谷底法涡戳。P分法是由Doyle于1962年提出的,該方法根據(jù)先驗概率來設(shè)定閾值脯倚,使目標(biāo)或背景的像素比例等于先驗概率渔彰。直方圖谷底法選取圖像直方圖各峰之間的谷底作為圖像分割閾值。下圖顯示了基于圖像灰度直方圖選擇單個閾值或多個閾值的例子:
Nl Vision使用IMAQ Threshold實現(xiàn)手動單灰度區(qū)間的圖像分割。它和其他圖像分割函數(shù)都位于LabVIEW的視覺與運動→lmage Processing→Processing圖像處理函數(shù)選板中胳岂,如下圖所示:
函數(shù)說明及使用可參見幫助手冊:
通過使用單個灰度區(qū)間對硬幣圖像進行分割的示例编整,了解手動閾值分割實現(xiàn)方法,程序設(shè)計思路如下所示:
程序一開始先將原圖coins.jpg讀入內(nèi)存乳丰,并使用圖像顯示控件顯示;
此后内贮,程序使用IMAQ GetlmageSize獲取圖像的尺寸产园,并為圖像處理分配緩沖,以方便圖像分割算法使用夜郁;
以上準(zhǔn)備工作完成后什燕,程序便進入實現(xiàn)圖像閾值分割功能的While循環(huán);
While循環(huán)中代表閾值分割方法的變量Type竞端、代表局部分割方法配置參數(shù)的變量Local屎即、代表自動閾值分割方法配置參數(shù)的變量Automatic、代表手動閾值分割方法配置參數(shù)的變量Manual以及代表聚類分割方法配置參數(shù)的變量Number of Class被捆綁為簇事富,經(jīng)由寄存器與其前一次的值進行比較技俐;
若簇中任一參數(shù)發(fā)生變化,或者當(dāng)循環(huán)執(zhí)行第一步時统台,條件結(jié)構(gòu)True分支中的圖像分割代碼就會被執(zhí)行雕擂;
具體執(zhí)行何種圖像分割代碼,由Type參數(shù)控制贱勃。Type參數(shù)對應(yīng)于前面板上的Tab控件井赌,當(dāng)用戶選擇Manual選項卡時,程序就執(zhí)行Manual分支中的IMAQ Threshold贵扰,完成對圖像的人工分割仇穗;
默認(rèn)情況下IMAQ Threshold使用1替換所有指定灰度范圍內(nèi)的像素值,用0替換所有灰度范圍外的像素值戚绕,以生成二值圖像纹坐。也可通過設(shè)置參數(shù),使灰度區(qū)間內(nèi)的像素保持原值不變列肢,而只把灰度范圍之外的背景像素值更改為0恰画;
當(dāng)用戶在前面板上更改了任何與手動分割相關(guān)的參數(shù)時,While循環(huán)將更新圖像分割的結(jié)果瓷马。
程序設(shè)計如下所示:
程序效果如下所示:
手動閾值分割方法需要人為確定閾值拴还。由于所選定的閾值不僅作用于整幅圖像,還作用于所有使用該方法處理的圖像欧聘,因此它適用于可采集單幅光照分布比較均勻的圖像片林,且能獲取多幅圖像之間光照相對一致的機器視覺系統(tǒng)。為了能消除人工設(shè)定閾值的主觀性,使機器視覺系統(tǒng)能適應(yīng)不同圖像間照明不一致的情況费封,需要研究各種自動閾值分割方法焕妙。
項目資源下載請參見:LabVIEW圖像全局閾值分割-其它文檔類資源-CSDN下載
1.1.2、自動閾值分割
自動閾值分割方法基于圖像的灰度直方圖來確定灰度閾值弓摘。由于這類算法會基于每幅圖像的直方圖來計算適合該圖像的分割閾值焚鹊,因此即使機器視覺系統(tǒng)采集的各個圖像之間有不同的光照,它們也能正常工作韧献。
Nl Vision支持5種自動閾值分割方法末患,包括:聚類法(Clustering)、最大類間方差法(Inter-Class Variance)锤窑、最大嫡法(Entropy) 璧针、均勻性度量法(Metric)和矩保持法(Moments Preserving)。
其中聚類法是唯一支持將圖像分割為兩類以上像素點的分割方法渊啰,其余4種方法都是針對較為嚴(yán)格的二值分割情況而設(shè)計的探橱。
聚類法是一種按照圖像像素灰度特征的接近程度分割成多個類的迭代分割方法。常見的聚類算法有K均值(K-Mean)和模糊C均值(FuzzyCMean)算法绘证。
K均值算法是MacQueen于1967年提出的一種解決聚類問題的經(jīng)典算法隧膏。它先任選K個初始值,將它們作為類中心迈窟,并根據(jù)這些值將其余像素分別歸入離它最近的類中私植。此后再計算新類的均值重新作為新類的中心,并迭代執(zhí)行前面的分類步驟车酣,直到新舊類均值之差小于某閾值或完全相同為止曲稼。其基本算法如下:
1、從樣本集中任意選擇K個對象作為初始聚類中心湖员;
2贫悄、對于剩余樣本,根據(jù)它們與這些聚類中心的距離(絕對偏差或歐氏距離)娘摔,將它們分配到與其最近的類(由聚類中心代表)窄坦;
3、計算每個新類中像素的均值作為新的聚類中心凳寺;
4鸭津、重復(fù)第2和3步,直至相應(yīng)的新舊類聚類中心之差小于某一閾值或完全相同為止肠缨。
K均值算法假定每個樣本只能屬于某一類逆趋,而且若用于圖像分割,在圖像中的某一類或幾類像素較少時晒奕,它很難保留像素較多的類別中的圖像細(xì)節(jié)闻书。
模糊C均值算法是在模糊數(shù)學(xué)基礎(chǔ)上對K均值算法的推廣名斟,它通過最優(yōu)化一個模糊目標(biāo)函數(shù)實現(xiàn)聚類。模糊C均值算法不像K均值算法那樣認(rèn)為每個點只能屬于某一類魄眉,而是計算每個點對各類的隸屬度砰盐,用隸屬度更好地描述邊緣像素亦此亦彼的特點。因此坑律,模糊C均值算法較適合圖像中存在不確定性和模糊性的情況岩梳。
若僅僅要將圖像分為目標(biāo)和背景兩類,可以使用迭代法對像素進行聚類脾歇,其算法如下:
1蒋腮、選擇一個初始閾值T(通常取圖像的平均灰度);
2藕各、用T將像素分割為灰度小于T的G1和大于T的G2兩類,并計算G1和G2類中像素的平均灰度值m1和m2焦除;
3激况、重新設(shè)定閾值T=(m1+m2)/2。
4膘魄、重復(fù)步驟2和3乌逐,直到連續(xù)迭代中的T值之差小于某一閾值或完全相同為止。
Nl Vision使用IMAQ AutoBThreshold和IMAQ AutoMThreshold實現(xiàn)迭代法和多個目標(biāo)的聚類分割法创葡。這兩個VI位于LabVIEW的視覺與運動→lmage Processing→Processing圖像處理函數(shù)選板中浙踢,見博文1.1.1、手動閾值分割內(nèi)容部分所示灿渴。
通過一個案例洛波,了解使用IMAQ AutoBThreshold實現(xiàn)自動迭代聚類法的方法。
在程序中使用時骚露,只需根據(jù)情況通過參數(shù)Method選擇需要的方法即可蹬挤,程序設(shè)計可見1.1.1、手動閾值分割內(nèi)容部分所示棘幸。
使用迭代聚類法自動將圖像coins.jpg分割為目標(biāo)和背景圖像的實例焰扳。程序繼續(xù)沿用了1.1.1、手動閾值分割中實例的結(jié)構(gòu)误续,運行時選擇自動閾值分類選項卡Automatic中的迭代聚類法Cluster并設(shè)置目標(biāo)類型Object Type為亮背景中的暗目標(biāo)吨悍。觀察程序運行結(jié)果可發(fā)現(xiàn),目標(biāo)與背景被清晰地分割開來蹋嵌,如下所示:
項目資源下載請參見:LabVIEW圖像全局閾值分割-其它文檔類資源-CSDN下載
1.2育瓜、局部閾值分割
局部閾值分割法(Local Thresholding)又稱為局部自適應(yīng)閾值分割法 (LocallyAdaptive Thresholding)或可變閾值處理。它在像素的某一鄰域內(nèi)以一個或多個指定像素的特性(如灰度范圍欣尼、方差爆雹、均值或標(biāo)準(zhǔn)差)為圖像中的每一點計算閾值停蕉。由于要遍歷所有圖像中的像素,因此鄰域的大小對該算法的執(zhí)行速度會有較大影響钙态。一般來說慧起,鄰域的尺寸略大于要分割的最小目標(biāo)即可。
全局閾值分割法的一個缺點是其在圖像和背景灰度差異較明顯時容易忽略細(xì)節(jié)册倒。Niblack二值化算法用于解決此類問題蚓挤,這種算法的基本思想是對每一個像素點f(i,j)驻子,計算其鄰域內(nèi)像素點的均值m (i灿意,j)和方差2(i, j),然后根據(jù)以下邏輯對圖像進行分割:
1崇呵、每個像素計算T(i, j) =m (i, j) +k
2 (i, j)缤剧,其中k為偏差系數(shù)(deviationfactor),通常取0.2域慷;
2荒辕、若f (i, j) > T (i, j) ,則將該像素歸為目標(biāo)犹褒,否則歸為背景抵窒。
Nl Vision使用IMAQ LocalThreshold實現(xiàn)局部閾值分割法,它位于LabVIEW的視覺與運動→lmage Processing→Processing圖像處理函數(shù)選板中叠骑,見博文1.1.1李皇、手動閾值分割內(nèi)容部分所示。
IMAQ LocalThreshold為了增強算法的實時性和魯棒性宙枷,提供了兩種優(yōu)化算法:一是使用最大類間方差法的背景糾正法掉房,另一種是Niblack二值化算法(Niblack Algorithm)。
通過一個案例朦拖,了解使用Niblack二值化算法對圖像進行分割的方法圃阳。
程序設(shè)計可見1.1.1、手動閾值分割內(nèi)容部分所示璧帝,運行時選擇局部閾值分割選項卡local中的Niblack算法捍岳,并設(shè)置目標(biāo)類型Object Type為亮背景中的暗目標(biāo)。Niblack算法的偏離參數(shù)被設(shè)置為1睬隶,窗口大小被設(shè)置為64×64(略大于字符)锣夹。
觀察程序運行結(jié)果可以發(fā)現(xiàn),雖然圖像的亮度分布不均(中間部分的亮度高于周圍亮度)苏潜,但是局部閾值分割算法也能較好地對圖像進行分割银萍,效果如下所示:
項目資源下載請參見:LabVIEW圖像全局閾值分割-其它文檔類資源-CSDN下載
1.3、閾值分割算法比較
在使用這些圖像分割方法時恤左,常遇到背景和目標(biāo)之間分界不清的問題贴唇。這種情況下搀绣,可以先對圖像進行預(yù)處理,再進行分割戳气。常用的預(yù)處理方法包括灰度變換(LUT)链患、直方圖均衡、空域或頻域濾波等瓶您。使用線灰度工具觀察一條跨邊緣的線段上的灰度分布麻捻,也有助于選擇合適的閾值。此外呀袱,形態(tài)學(xué)處理可以對分割后的二值圖像進行糾正贸毕,以濾除閾值分割過程的錯誤選擇。
下表對上述各種灰度閾值方法進行了匯總和比較夜赵。
若要對彩色圖像進行閾值化明棍,必須對各個顏色分量設(shè)置閾值。只有各顏色分量都滿足閾值條件的像素點才能被置為1寇僧,否則被置為0击蹲。
例如,若要對RGB彩色圖像進行閾值化,可以確定要分析目標(biāo)的紅綠藍(lán)各顏色分量的范圍婉宰,然后再為各顏色分量指定閾值范圍。HSL彩色圖像的分割很有特點推穷,由于亮度分量(Luminance)代表圖像的灰度心包,色度(Hue)包含圖像的主要顏色信息,而Saturation分量代表顏色的飽和度馒铃,因此可以選擇包含所有亮度值的閾值范圍蟹腾,使圖像分割獨立于圖像的灰度信息,而僅僅根據(jù)需要選擇不同的色度和飽和度閾值區(qū)間即可区宇。
NI Vision使用IMAQ ColorThreshold實現(xiàn)彩色圖像的閾值分割娃殖,它位于LabVIEW的視覺與運動→lmage Processing→Color Processing彩色圖像處理函數(shù)選板中,如下所示:
函數(shù)說明及使用可參見幫助手冊:
2议谷、圖像邊緣分割
圖像中目標(biāo)的邊緣是一組相連的像素炉爆,它是圖像中目標(biāo)的基本特征之一。這些像素位于灰度不連續(xù)(間斷或跳變)的兩個區(qū)域的邊界上卧晓。由于各種噪聲的影響芬首,機器視覺系統(tǒng)采集到的圖像中,目標(biāo)邊緣處像素的灰度變化并不都是理想的階躍式跳變逼裆,而通常遵循漸進的變化方式郁稍。因此,可以用下圖所示的模型來表示圖像中目標(biāo)的邊緣胜宇。
邊緣模型中常用的參數(shù)包括邊緣強度(edge strength)耀怜、邊緣長度(edge length)霞掺、邊緣位置(edge location)和邊緣極性(edge polarity),具體所示如下所示:
邊緣強度又稱為邊緣對比度而克,指可識別邊緣相對于背景的最小灰度差異节预。邊緣強度的大小因光照條件和目標(biāo)的灰度特性不同而異。若整個場景中光照較弱狈究,則邊緣強度較低碗淌。若圖像中某一目標(biāo)相對于其他目標(biāo)亮度很高,則較低亮度目標(biāo)的邊緣強度會被壓低抖锥。
邊緣長度是指能確保所設(shè)定邊緣強度出現(xiàn)的距離亿眠,它由邊緣像素灰度的變化率決定“醴希灰度變化較緩慢的邊緣纳像,其邊緣長度應(yīng)較大。
邊緣位置是指代表邊緣的像素在圖像中的位置坐標(biāo)拯勉。
邊緣極性代表邊緣為上升沿還是下降沿竟趾,它通常用于指明搜索算法的方向。當(dāng)邊緣處的灰度為遞增變化時宫峦,其極性為正岔帽,反之為負(fù)。
邊緣分割法基于目標(biāo)的邊緣特征导绷,先使用邊緣檢測算法檢測圖像中目標(biāo)的邊緣(如點犀勒、線、目標(biāo)輪廓等)妥曲,然后再利用像素點的空間關(guān)系贾费,根據(jù)設(shè)定的條件將邊緣連接為檢測目標(biāo)的封閉輪廓(contour)。得到的目標(biāo)輪廓可作為各區(qū)域的邊界檐盟,用于圖像分割褂萧。
從算法實現(xiàn)的角度來看,可以基于提取到的目標(biāo)輪廓點構(gòu)建ROI數(shù)據(jù)結(jié)構(gòu)葵萎,再將ROI轉(zhuǎn)化為遮罩圖像导犹。此后,對遮罩圖像進行填充陌宿,再與圖像進行遮罩運算锡足,即可輕而易舉地將圖像劃分為不同區(qū)域。下圖顯示了使用點壳坪、線及目標(biāo)邊緣將圖像分割為不同區(qū)域的示意圖舶得。
邊緣檢測算法主要是對圖像灰度變化進行度量,提取圖像中不連續(xù)的灰度特征爽蝴,以此定位邊緣點°迮現(xiàn)有的圖像處理書籍和資料中多數(shù)用相當(dāng)多的篇幅介紹邊緣檢測和圖像分割纫骑。然而若考慮實時性和魯棒性,這些算法并不見得都適用于機器視覺系統(tǒng)九孩。
2.1先馆、點檢測
傳統(tǒng)的點檢測技術(shù)常基于以下模板(以3×3模板為例躺彬,但不失一般性)運算進行判別∶
如果設(shè)定一個非負(fù)的灰度閾值T煤墙,并從圖像(或ROI)的左上角開始逐點從左到右、從上到下進行掃描宪拥,且對于每個像素仿野,都以其為模板中心進行模板運算,則結(jié)果超出門限時她君,即可認(rèn)為檢測到一個孤立點脚作,亦即有下式成立∶
傳統(tǒng)點檢測方法認(rèn)為圖像中孤立點與其鄰域內(nèi)像素的灰度(即背景)有較大差異,因此通常使用系數(shù)之和為0的模板運算獲得中心像素的灰度變化缔刹,并根據(jù)該變化和閾值T來決定是否為孤立點球涛。
雖然傳統(tǒng)點檢測方法對孤立點的檢測較為有效,但它不能判斷檢測到的孤立點是否邊緣點校镐。此外亿扁,由于傳統(tǒng)點檢測方法計算量大,實時性較差鸟廓,因此有必要尋找更適合機器視覺系統(tǒng)的方法魏烫。
本文講解一種常用的點檢測方法,通過限定搜索區(qū)域和搜索數(shù)量來提高檢測的實時性肝箱。這種方法最簡單直接的應(yīng)用就是基于一維像素序列上的灰度變化,沿指定方向?qū)ふ疑仙吘壓拖陆颠吘壪◇瑏磉M行各種判斷煌张。而一維像素序列可基于圖像中的任意路徑獲得,如線段退客、矩形骏融、旋轉(zhuǎn)矩形、同心圓弧萌狂、橢圓档玻、多邊形或任意形狀。
下圖顯示了這種從像素序列一端開始搜索上升和下降邊緣的簡易方法茫藏。對于每個像素點误趴,它都會通過比較該點的像素灰度與邊緣閾值來判斷其是否為邊緣點。為了盡可能消除噪聲干擾务傲,在判定上升和下降邊緣時凉当,可在理想閾值的基礎(chǔ)上設(shè)定一個裕量(hysteresis)枣申,當(dāng)搜索到第一個大于或等于“理想閾值加上裕量”的像素時,就將該點指定為沿該線搜索到的上升邊緣看杭。緊接著忠藤,該方法將繼續(xù)向前尋找第一個小于或等于“理想閾值減去裕量"的像素,找到時就將該點指定為下降邊緣楼雹。如此循環(huán)往復(fù)模孩,直到找到所有上升和下降邊緣為止。
在實際工作中贮缅,由于圖像中的目標(biāo)可能為暗目標(biāo)榨咐,因此找到的第一個邊緣點也可能為下降邊緣。此種情況下携悯,找到第一個邊緣以后的搜索方法與上述過程類似祭芦。
多數(shù)情況下,基于圖像自身的像素分辨率找到的邊緣點位置就能滿足各種機器視覺檢測的需求憔鬼。但是在某些特殊情況下龟劲,由于傳感器尺寸或成本方面的限制,即使機器視覺系統(tǒng)的鏡頭與相機傳感器匹配且光照條件較好轴或,采集到的圖像也很難滿足對最小分辨率的需求昌跌。這種情況下,可以使用亞像素(subpixel)邊緣定位法來尋找滿足系統(tǒng)分辨率要求的邊緣點位置照雁。
亞像素是當(dāng)物理上已經(jīng)無法在相鄰像素間增加更多像素時蚕愤,使用各種線性、拋物線或多次插值算法饺蚊,在相鄰像素之間插入多個“虛擬像素"以提高測量精度的手段萍诱。通常情況下,亞像素邊緣點存在于圖像中逐漸發(fā)生過渡變化的區(qū)域污呼,可以利用多項式插值等多種方法獲得邊緣點的亞像素位置裕坊,以提高邊緣點檢測的精度。例如燕酷,可按照以下流程使用拋物線插值法(parabolic interpolation)進行亞像素邊緣定位籍凝,如下所示:
1、基于圖像像素沿某一線段尋找邊緣點苗缩;
2饵蒂、選擇檢測到的邊緣像素點(xo,yo)及與其左右相鄰的兩個點(x-1酱讶,y-1)和(x1退盯,y1)作為拋物線插值的3個點;
3、根據(jù)已知的3個點計算拋物線方程y=ax2+bx+c的系數(shù)a和b得问;
4囤攀、由于拋物線方程在x=-b*2a處有極值,因此可選擇該處為相對于最近像素點的亞像素邊緣宫纬。
雖然基于亞像素定位法可以提高測量精度焚挠,但是由于計算量增加,程序的實時性也會相對降低漓骚。因此在實際中總是需要在速度與精度之間進行取舍蝌衔。
NI Vision使用位于LabVIEW的視覺與運動→Machine Vision→Caliper函數(shù)選板中的IMAQ SimpleEdge實現(xiàn)上述沿一維像素序列檢測邊緣點的方法,如下所示:
函數(shù)說明及使用可參見幫助手冊:
通過使用IMAQ Simple Edge檢測零部件邊緣點的實例蝌蹂,了解其使用方法噩斟,程序設(shè)計思路如下所示:
程序開始先為圖像處理分配內(nèi)存并指定了一條線段作為圖像的初始ROI;
程序在執(zhí)行第一個循環(huán)時孤个,先由IMAQ Clear Overlap清除圖像中的疊加圖層剃允,然后由IMAQ ROIProfile返回初始ROI所覆蓋的一維像素序列,并繪制該ROI上的像素灰度變化曲線齐鲤;
IMAQ Simple Edge可以基于事先設(shè)置的邊緣灰度閾值和抗噪裕量斥废,返回像素序列中的邊緣點數(shù)量和位置。必要時也可以通過設(shè)置亞像素精度參數(shù)Sub-Pixel Accuracy為True來提高算法的檢測精度给郊;
Overlay Points with User Specified Size.vi可以按照檢測到的邊緣位置牡肉,以指定的顏色和尺寸在圖像中標(biāo)記出它們的位置;
當(dāng)循環(huán)繼續(xù)執(zhí)行時淆九,程序?qū)z查控制算法執(zhí)行的參數(shù)Process或Threshold Parameters簇是否被改變统锤,或者圖像控件中是否有ROl繪制事件發(fā)生;
當(dāng)任何一個變化發(fā)生時炭庙,分支結(jié)構(gòu)中的代碼將被再次執(zhí)行饲窿;
程序直到用戶單擊Stop按鈕退出并釋放內(nèi)存為止。
程序設(shè)計如下所示:
程序還顯示了用戶繪制矩形ROI時焕蹄,程序檢測所有該矩形ROI上的邊緣點的情況免绿,注意,在此過程中用戶設(shè)置了相對閾值方式來檢測邊緣擦盾。
項目資源下載請參見:LabVIEW機器視覺檢測零部件邊緣點_labview機器視覺-其它文檔類資源-CSDN下載
2.2、線檢測
傳統(tǒng)的線邊緣檢測技術(shù)程视矗基于以下各種方向模板運算進行判別:
本文提出一種適合機器視覺系統(tǒng)的直線檢測方法迹卢,思路如下所示:
1、將搜索路徑從一維擴展至二維徒仓。不是沿某一條搜索路徑搜索邊緣腐碱,而是沿圖像中多條搜索路徑進行邊緣檢測;
2、基于檢測到的邊緣點症见,使用曲線擬合的方法確定目標(biāo)邊緣喂走。
理論上來講,該方法適合任意形式的搜索路徑和可能擬合的曲線谋作。然而芋肠,無論對于搜索路徑還是最終需要擬合的邊緣線來說,直線遵蚜、圓(圓惶亍)和橢圓最為實用,因此以下將主要介紹基于這幾種路徑的方法吭净。
沿矩形ROI區(qū)域內(nèi)多條直線搜索邊緣點的矩形耙(Rectangle Rake)是最常用的工具之一睡汹。矩形耙工具因其形狀像耙子而得名,如下圖所示寂殉。矩形耙基于矩形ROI內(nèi)部平行于矩形ROI的多條線搜索邊緣點囚巴。對于水平放置的或旋轉(zhuǎn)過的水平矩形ROI,可以沿這些線從左到右或從右到左進行搜索友扰。如果需要從上到下或從下到上搜索邊緣彤叉,則可使用垂直放置或旋轉(zhuǎn)過的垂直矩形ROI。與一維邊緣點檢測方法類似焕檬,矩形耙可以搜索各條搜索線上的上升邊緣姆坚、下降邊緣、首尾或所有邊緣點实愚,以及邊緣強度最大的最佳邊緣點兼呵。
同心耙(Concentric Rake)與矩形耙工作原理類似,它基于圓形或同心圓弧ROI區(qū)域內(nèi)的多條線進行搜索腊敲,這些線與圓或圓弧同心击喂。使用同心耙搜索時,既可沿順時針方向搜索碰辅,也可沿逆時針方向搜索懂昂。如下所示:
輪輻(Spoke)工具因其形狀酷似自行車的輪輻而得名,它也基于圓形或同心圓弧ROI區(qū)域進行搜索没宾,但與同心耙工具不同凌彬,其搜索線是一組從圓心到外邊緣的輻射狀線條。使用輪輻工具時循衰,既可從圓心向外搜索铲敛,也可從外部向圓心方向搜索。如下所示:
Nl Vision使用位于LabVIEW的視覺與運動→Machine Vision→Caliper函數(shù)選板中的IMAQ Rake 3会钝、IMAQ Concentric Rake 3和IMAQ Spoke 4實現(xiàn)矩形耙伐蒋、同心耙和輪輻邊緣點檢測算法,如下圖所示:
函數(shù)說明及使用可參見幫助手冊:
Nl Vision使用位于LabVIEW的視覺與運動→Machine Vision→Analytic Geometry解析幾何函數(shù)選板中的IMAQ Fit Line、IMAQ Fit Circle 2和IMAQ FitEllipse 2實現(xiàn)基于離散特征數(shù)據(jù)點的直線先鱼、圓或橢圓的擬合俭正,如下圖所示。這些VI所使用的曲線擬合算法是在傳統(tǒng)曲線擬合方法的基礎(chǔ)上進行優(yōu)化后得到的焙畔。
函數(shù)說明及使用可參見幫助手冊:
工業(yè)中常需要對“噴霧"的角度進行測量掸读,例如在生產(chǎn)汽車噴油嘴時,就可以通過檢測其噴霧的角度來判斷產(chǎn)品的質(zhì)量闹蒜。當(dāng)噴油嘴無噴霧或噴霧的邊緣夾角達不到某個指定的角度時寺枉,即可認(rèn)為產(chǎn)品不合格。為了計算噴霧角度绷落,需要先找到噴霧的兩條邊緣線姥闪。為此,可以先使用矩形耙或同心耙砌烁,獲得噴霧兩個邊緣上的兩組邊緣點筐喳,再使用直線擬合得到兩條邊緣線。
通過使用同心耙和直線擬合檢測工業(yè)噴霧裝置邊緣的實例函喉,了解其使用方法避归,程序設(shè)計思路如下所示:
程序?qū)⑤喸兊妮斎肓咳坷壋纱兀婚_始先進行一系列準(zhǔn)備工作管呵,包括讀入圖像梳毙,為圖像處理分配內(nèi)存以及創(chuàng)建一個起始角度為180°,終止角為360°同心圓弧形的ROI捐下;
隨后账锹,程序清除圖像中的疊加圖層,并使用同心耙函數(shù)IMAQ Concentric Rake 3沿逆時針方向(Search Direction的值為0)檢測各條線上的首尾邊緣點坷襟。步長Step Size被設(shè)置為3個像素奸柬,這意味著同心耙中每隔3個像素就有一個用于搜索邊緣的同心圓弧婴程;
檢測到的邊緣點由Sub-OverlayPointswithSpecified Zize.vi以紅色在圖像上標(biāo)記了出來廓奕;
最后程序在使用IMAQ Fit Line分別將檢測到的兩組邊緣點擬合成兩條直線后,用IMAQ
Overlay Line以黃色顯示在圖像上档叔。
程序設(shè)計如下所示:
程序還允許人工在圖像中繪制矩形耙或同心耙或調(diào)整各類參數(shù)桌粉,以觀察直線檢測的效果。
一旦獲得兩條噴霧的邊緣線衙四,就能很容易通過以下方法計算噴霧的夾角铃肯。值得一提的是,NI Vision為圖像夾角測量提供了專門的函數(shù)届搁,開發(fā)人員無須關(guān)注這些計算細(xì)節(jié)就能直接獲得穩(wěn)定的測量結(jié)果。
項目資源下載請參見:LabVIEW工業(yè)噴霧裝置邊緣檢測-其它文檔類資源-CSDN下載
2.3、輪廓提取
輪廓(contour)是指可以在圖像中勾勒出目標(biāo)外形(shape)的一組相互連接的曲線(curve)卡睦。這些曲線由一系列目標(biāo)物的邊緣點組成宴胧。由曲線構(gòu)成的輪廓,通常會勾勒出被測目標(biāo)的外形表锻。因此恕齐,基于目標(biāo)的輪廓可以輕而易舉地實現(xiàn)圖像分割。
在Nl Vision中瞬逊,為了基于目標(biāo)物的輪廓對圖像進行分割显歧,可以先將提取到的輪廓信息轉(zhuǎn)換為ROI,再由ROI獲得遮罩圖像确镊,此后經(jīng)圖像的遮罩運算即可將圖像劃分為不同區(qū)域士骤。下圖顯示了基于目標(biāo)輪廓的圖像分割過程。
目標(biāo)的輪廓提取可分為搜索曲線種子(Search Curve Seed)蕾域、追蹤曲線(Tracingcurve)拷肌、曲線連接(Curve Connection)和輪廓選擇(Contour Selection)幾個步驟。
其中搜索曲線種子和追蹤曲線的過程又統(tǒng)稱為曲線提戎枷铩(curve Extraction)過程巨缘。曲線的種子點(Seed Point)是曲線追蹤過程的起始點,合格的曲線種子點應(yīng)滿足兩個條件采呐,一是其邊緣強度應(yīng)大于設(shè)定的閾值若锁,二是它不能屬于已知曲線上的像素點。若用Pi斧吐,代表(i又固,j)處像素的灰度,則(i会通,j)處的邊緣強度Ci口予,可由以下公式計算:
Nl Vision使用IMAQ Extract Contour封裝了包括搜索曲線種子、追蹤曲線涕侈、曲線連接和輪廓選擇幾個步驟在內(nèi)的所有目標(biāo)輪廓提取過程沪停,它位于LabVIEW的視覺與運動→Machine Vision→Contour Analysis函數(shù)選板中。
函數(shù)說明及使用可參見幫助手冊:
IMAQ Extract Contour可工作在常規(guī)模式(Normal)或均勻模式(Uniform Regions)兩種模式下裳涛。當(dāng)其工作在均勻模式下時木张,VI會假設(shè)圖像中目標(biāo)區(qū)域和背景區(qū)域的像素值分別為一致的灰度值,這有助于提高VI的執(zhí)行效率端三。
通過使用IMAQ Extract Contour提取零部件工件輪廓的實例舷礼,了解其使用方法,程序設(shè)計思路如下所示:
程序一開始先將工件圖像Clamp.png讀入內(nèi)存郊闯,并指定圖像中的ROI區(qū)域妻献;
進入主循環(huán)后蛛株,程序監(jiān)測曲線提取過程的參數(shù)及圖像顯示控件中繪圖事件(Draw),一旦有變化育拨,程序就調(diào)用IMAQ Extract Contour從ROI中提取目標(biāo)的輪廓谨履,并由IMAQ Overlay Contour在圖像中標(biāo)記出最終選擇的目標(biāo)輪廓。
程序設(shè)計如下所示:
程序還顯示了從左到右搜索ROI時所提取到的最接近ROI左側(cè)的目標(biāo)輪廓圖像熬丧,效果如下所示:
項目資源下載請參見:LabVIEW提取零部件工件輪廓_-其它文檔類資源-CSDN下載
機器視覺系統(tǒng)基于分割后的圖像信息來提取檢測目標(biāo)的特征笋粟,因而圖像分割的質(zhì)量直接決定機器能否快速準(zhǔn)確地基于目標(biāo)特征進行決策。閾值分割和邊緣分割可以滿足大多數(shù)機器視覺應(yīng)用的要求析蝴,但是當(dāng)所采集的圖像質(zhì)量較差害捕,目標(biāo)和背景的灰度差別不大或視場中被測目標(biāo)有交疊時,其分割效果并不理想闷畸。在這種情況下就需要使用圖像的區(qū)域分割法和形態(tài)學(xué)(Morphology)分割法尝盼。
3、圖像形態(tài)學(xué)分割
形態(tài)學(xué)是用來研究生物形態(tài)結(jié)構(gòu)和功能結(jié)構(gòu)的學(xué)科腾啥,包括生物體的外觀东涡、結(jié)構(gòu)、圖案以及生物體的骨骼倘待、器官內(nèi)部功能結(jié)構(gòu)等疮跑。它最早由歌德在其生物學(xué)研究中倡導(dǎo),強調(diào)把生命形式當(dāng)作有機的系統(tǒng)看待凸舵,反對只注重對生物體器官的分析祖娘。
圖像的數(shù)學(xué)形態(tài)學(xué)處理既可作用于經(jīng)閾值化處理得到的二值圖像,也可用于處理灰度圖像啊奄〗ニ眨灰度圖像的形態(tài)學(xué)處理主要通過將像素灰度值變更為其鄰域內(nèi)像素的灰度最大或最小值來實現(xiàn)灰度圖像的增強,包括降噪菇夸、背景矯正和平滑漸變的灰度特征等状共。它也可以通過擴展或收縮目標(biāo)的亮度區(qū)域來改變目標(biāo)的形狀幽告,增強目標(biāo)邊界的對比度。二值圖像的形態(tài)學(xué)處理則主要用來去除經(jīng)閾值化處理得到的二值圖像中不需要的信息,如噪聲相互重疊的目標(biāo)邊界等征冷。當(dāng)然叙甸,它也可以擴展或收縮目標(biāo)邊界來改變其形狀昔逗。
圖像的數(shù)學(xué)形態(tài)學(xué)處理包含多種計算形式俏竞,其中腐蝕(Erosion)、膨脹(Dilation)和擊中—擊不中(Hit-Miss)是3種最基本的形態(tài)學(xué)運算形式羞芍。通過對它們進行組合哗戈,可以進一步獲得更多其他組合形式的運算,如開運算(Opening)和閉運算(Closing)荷科、內(nèi)形態(tài)梯度(Inner Gradient)和外形態(tài)梯度(Outer Gradient)運算唯咬、細(xì)化(Thinning)和加粗(Thickening)運算纱注,適當(dāng)開(Proper-Opening)和適當(dāng)閉(Proper-Closing)運算以及自動中值(Auto-median)運算等。圖像形態(tài)學(xué)處理運算匯總?cè)缦聢D所示:
3.1胆胰、像素的形態(tài)學(xué)處理
圖像的形態(tài)學(xué)處理常表現(xiàn)為一種像素的鄰域運算形式奈附,它使用具有一定形態(tài)的結(jié)構(gòu)元素與圖像進行形態(tài)學(xué)運算,并進而研究圖像各部分的關(guān)系煮剧,以尋求各種問題的解決方案。運算過程中将鸵,以下因素直接決定形態(tài)學(xué)處理的結(jié)果:
1勉盅、結(jié)構(gòu)元素的尺寸(Structure Element Size);
2顶掉、結(jié)構(gòu)元素的數(shù)值(Structure Element Value)草娜;
3、待處理圖像的像素邊框形狀(Pixel Frame Shape)痒筒;
4宰闰、形態(tài)學(xué)處理算法的類型。
其中簿透,前3項直接決定哪些像素將參與形態(tài)學(xué)處理運算移袍,而形態(tài)學(xué)算法的類型則決定了如何基于選定的像素進行鄰域計算。
結(jié)構(gòu)元素的尺寸和數(shù)值對形態(tài)學(xué)處理的影響如下圖所示老充。結(jié)構(gòu)元素通常為行葡盗、列數(shù)相同的奇數(shù)矩陣形式,它將中心元素與圖像中待處理的像素對齊啡浊,依據(jù)其尺寸的大小在待處理像素鄰域內(nèi)劃定了形態(tài)學(xué)運算的范圍觅够。也就是說,運算時僅考慮被結(jié)構(gòu)元素覆蓋的圖像像素巷嚣。程序開發(fā)過程中喘先,結(jié)構(gòu)元素可以用二維數(shù)組描述,常見的尺寸有3×3廷粒、5×5和7×7等幾種窘拯。若指定的數(shù)組行、列數(shù)不同评雌,則程序應(yīng)能自動截取最接近的奇數(shù)矩陣树枫。結(jié)構(gòu)元素的尺寸越大,形態(tài)學(xué)處理的計算量就越大景东,相應(yīng)的處理速度就越低砂轻。
形態(tài)學(xué)處理的算法決定了使用何種方法基于所選出的像素獲得結(jié)構(gòu)元素中心所覆蓋像素的新值。
腐蝕斤吐、膨脹和擊中—擊不中是3種最基本的形態(tài)學(xué)算法搔涝。若用Po代表中心像素厨喂,用Pi代表基于像素邊框和結(jié)構(gòu)元素選出的像素,則3種算法的計算方法庄呈、用途及適用的圖像類型如下表所示:
腐蝕和膨脹運算既可作用于灰度圖像蜕煌,也可作用于二值圖像,但因圖像類型不同诬留,其作用也有差異斜纪。二值腐蝕運算常用來消除圖像中相對背景亮度較高的孤立像素點,或根據(jù)所選結(jié)構(gòu)元素特征文兑,細(xì)化目標(biāo)的輪廓盒刚。
計算時,僅當(dāng)所有Pi值均為1時绿贞,二值腐蝕運算才將Po的值置為1因块。也就是說,若有任一個Pi值為0籍铁,二值腐蝕運算就將Po的值置為0涡上。二值膨脹運算則常用于消除圖像中孤立于顆粒內(nèi)部的孔洞(即被灰度較高的像素所包圍的區(qū)域),或根據(jù)所選結(jié)構(gòu)元素特征擴展目標(biāo)的輪廓拒名。
計算時吩愧,若有任一個Pi值為1,二值膨脹運算就將Po的值置為1增显。從邏輯運算的角度來看耻警,二值腐蝕相當(dāng)于對Pi求與運算,二值膨脹相當(dāng)于對Pi求或運算甸怕。若將它們作用于同一圖像甘穿,二值膨脹運算則等效于對圖像的背景進行二值腐蝕運算,因此它與二值腐蝕運算的效果剛好相反梢杭。
Nl Vision將上述的基本形態(tài)學(xué)處理算法封裝在IMAQ Morphology和IMAQ GrayMorphology中温兼,前者用于二值圖像,后者用于灰度圖像武契。它們位于LabVIEW的視覺與運動→Image Processing→Morphology函數(shù)選板中募判,如下圖所示:
函數(shù)說明及使用可參見幫助手冊:
通過使用IMAQ Morphology對電路板圖像進行連續(xù)兩次腐蝕操作,濾除圖像中間部位斑點噪聲的實例咒唆,了解其使用方法届垫,程序設(shè)計思路如下:
程序在為圖像處理分配內(nèi)存后,先對讀入的灰度圖像進行了自動閾值化處理全释,然后進入主循環(huán)装处;
主循環(huán)監(jiān)測任何與形態(tài)學(xué)處理相關(guān)的參數(shù)變化,若用戶更改任一參數(shù)浸船,則分支結(jié)構(gòu)中的IMAQ Morphology就會被執(zhí)行妄迁,并將形態(tài)學(xué)處理的結(jié)果顯示在圖像顯示控件中寝蹈。
程序設(shè)計如下所示:
由于處理結(jié)果為二值圖像,因此應(yīng)通過圖像顯示控件的右鍵菜單將其顯示調(diào)色板設(shè)置為Binary以獲取最佳顯示效果登淘,如下所示:
項目資源下載請參見:LabVIEW電路板圖像腐蝕操作-其它文檔類資源-CSDN下載
3.2箫老、顆粒的形態(tài)學(xué)處理
顆粒是指圖像中相互連通的一組非0或灰度較高的像素所構(gòu)成的區(qū)域。判斷一個像素是否屬于某一顆粒黔州,要看它是否與該顆粒之間具有連通性(Connectivity)耍鬓。例如,填充區(qū)域中的孔洞流妻、移除與圖像邊界粘連的區(qū)域界斜、濾除不需要的區(qū)域、分離重疊區(qū)域合冀、搜索區(qū)域中的凸殼(Convex Hull)等。經(jīng)過這些算法處理后的圖像更適于進行基于顆粒的定量分析项贺、提取目標(biāo)的簡易模型或進行目標(biāo)識別君躺。
數(shù)字圖像中與像素鄰接(Adjoining)的像素有8個,但是判斷鄰接的像素是否屬于同一顆粒开缎,就要依據(jù)某種連通性判斷準(zhǔn)則棕叫。
常見的連通性判斷準(zhǔn)則有4連通(Connectivity-4)和8連通(Connectivity-8)兩種。
4連通準(zhǔn)則認(rèn)為奕删,若像素在水平或垂直方向上與另一像素鄰接俺泣,則這兩像素屬于同一顆粒;
8連通準(zhǔn)則的判斷條件則相對寬松完残,只要像素在水平伏钠、垂直或?qū)蔷€方向上與另像素鄰接,則就認(rèn)為它們屬于同一顆粒谨设。
若像素與其水平或垂直方向上鄰接像素的距離為D熟掂,則4連通認(rèn)為像素與距其為D的鄰接像素屬于同一顆粒,而8連通則認(rèn)為距離像素為D或D的像素與其屬于同一顆粒扎拣。下圖顯示了4連通和8連通的結(jié)構(gòu)赴肚,以及分別使用它們對同一圖像中的像素進行判斷時所得到的不同結(jié)果。
確定了連通性判斷準(zhǔn)則二蓝,就可以將二值圖像中每個連通區(qū)域標(biāo)記(Label)為能被獨立識別的顆粒誉券,以方便圖像的分割和處理。
圖像標(biāo)記過程搜索二值圖像中相互連通的各組像素(即顆粒)刊愚,并將屬于同一顆粒的像素值全部更改為某一固定的標(biāo)記值踊跟,將二值圖像的背景標(biāo)記為0∨阜蹋考慮標(biāo)記值等效于像素的灰度琴锭,可以使用8位或16位對標(biāo)記值編碼晰甚,這樣就能直接將標(biāo)記后的圖像作為8位或16位灰度圖像進行保存。
由此可知决帖,圖像標(biāo)記過程的輸入圖像為二值圖像厕九,但其輸出卻是含有為每個顆粒都設(shè)置灰度標(biāo)記值的灰度圖像。其中灰度標(biāo)記值的數(shù)量等于圖像中顆粒的數(shù)量再加上用于背景的灰度標(biāo)記值0地回。
圖像標(biāo)記過程要解決的另一問題是根據(jù)連通性判斷準(zhǔn)則尋找能快速確定各個獨立顆粒的搜索算法扁远。NI Vision將圖像標(biāo)記過程封裝在位于LabVIEW的視覺與運動→lmage Processing→Processing函數(shù)選板的IMAQ Label中,如下圖所示:
函數(shù)說明及使用可參見幫助手冊:
但是NI的相關(guān)文檔中并未說明該函數(shù)具體使用了何種搜索算法刻像。圖像標(biāo)記最為常見的搜索算法如下:
1畅买、逐行掃描像素,找到第一個非0像素作為種子點细睡,為其設(shè)置專門的標(biāo)記值谷羞;
2、從種子點開始按照連通性判斷準(zhǔn)則沿各個方向搜索與其連通的像素溜徙,并將其置為與種子點相同的標(biāo)記值湃缎;
3、以各個連通的像素點為新的起點蠢壹,沿各個方向搜索與其連通的未標(biāo)記像素嗓违,并將其置為與起點相同的標(biāo)記值。不斷重復(fù)該過程图贸,直到所有分支上的像素都被標(biāo)記為止蹂季;
4、重新掃描圖像中未被標(biāo)記的點疏日,將其作為種子點偿洁,重復(fù)步驟1到步驟3,直到所有像素均被標(biāo)記為止沟优。
雖然上述搜索算法比較直觀父能,但其效率并不高,因此近幾年涌現(xiàn)了大量的快速標(biāo)記算法净神。例如何吝,下述基于行程的標(biāo)記方法就更快一些。
1鹃唯、從第一行開始掃描圖像爱榕,把其中連續(xù)的由非0像素組成的序列組成一個塊,為其按遞增的順序設(shè)置標(biāo)記值坡慌;
2黔酥、從第二行開始逐行掃描所有行里的塊。如果它與前一行中的所有塊都沒有連通,則給它一個新的標(biāo)記值跪者;如果它僅與上一行中一個塊連通棵帽,則將上一行的那個塊的標(biāo)記值賦給它;如果它與上一行兩個以上的塊有連通,則將當(dāng)前和塊及其相連的塊標(biāo)號均設(shè)置為上一行中塊的最小標(biāo)號渣玲;
3逗概、重復(fù)步驟2,直到所有像素均被標(biāo)記為止忘衍。
通過一個基于標(biāo)記值從圖像中分割出面積最大的標(biāo)記區(qū)域的實際例子逾苫,了解其使用,程序設(shè)計思路如下:
程序一開始先為源圖像和標(biāo)記圖像分配緩沖枚钓,然后執(zhí)行對圖像進行標(biāo)記的LabelGraylmg.vi铅搓,它會先使用IMAQ Threshold函數(shù)對輸入的灰度圖像進行閾值化處理;
用IMAQ Morphology對閾值化得到的二值圖像進行增強處理搀捷,然后再對二值圖像中的顆粒進行標(biāo)記星掰;
IMAQ Quantify基于輸入的遮罩圖像對灰度區(qū)域進行統(tǒng)計,由于所分析的圖像和遮罩圖像均為LabelGraylmg.vi輸出的標(biāo)記圖像嫩舟,因此IMAQ Quantify輸出的針對各顆粒的區(qū)域報告數(shù)組(Region Reports)簇元素中氢烘,灰度均值Mean Value就應(yīng)恰好為各顆粒的標(biāo)記值;
MaxAreaIndex.vi基于Region Reports數(shù)組元素簇中的顆粒面積Area (Pixel)字段至壤,尋找所有標(biāo)記的顆粒中面積最大的一個,并返回其在數(shù)組中的索引枢纠;
使用該索引像街,就能從數(shù)組中得到面積最大的顆粒所用的標(biāo)記值,而函數(shù)IMAQ LabelToROl就具備將一個或多個標(biāo)記值(封裝在數(shù)組中)對應(yīng)的顆粒轉(zhuǎn)換為ROl的能力晋渺。
程序設(shè)計如下所示:
效果如下所示:
項目資源下載請參見:LabVIEW從圖像中分割出面積最大的標(biāo)記區(qū)域-其它文檔類資源-CSDN下載
4镰绎、圖像區(qū)域分割
區(qū)域分割是將圖像按照相似性準(zhǔn)則分成不同區(qū)域的過程,主要包括:基于形態(tài)學(xué)的分水嶺分割法和區(qū)域生長木西、區(qū)域分裂合方法等畴栖。
分水嶺法是基于拓?fù)淅碚摰臄?shù)學(xué)形態(tài)學(xué)的分割方法。其基本思想是:把圖像中的顆涟饲В看作測地學(xué)上的盆地吗讶,其中每一像素的灰度值表示該點的深度,每一個局部極小值及其影響區(qū)域稱為集水盆地(Catchment Basin)恋捆,而集水盆地的邊界則形成分水嶺照皆。下圖用一個簡單的圖像來說明分水嶺分割法的原理。它首先計算圖像的距離場沸停,用像素到顆粒邊界的最近距離作為它們的標(biāo)記值膜毁。其次,它將距離場看作地形圖,顆粒被看作盆地瘟滨,而像素的標(biāo)記值則被看作盆地各處的深度候醒。若在距離場圖像中畫如圖(b)所示的直線,則可得到圖(e)所示的地形剖面圖杂瘸。
分水嶺算法的實現(xiàn)可通過水淹過程來說明倒淫。假定水均勻地對盆地進行填充,則盆地中的最低點(離邊界較遠(yuǎn)的點)首先被淹沒胧沫,然后水會逐漸填滿整個盆地昌简。當(dāng)水位到達一定高度的時候?qū)绯觯@時就可以在水溢出的地方劃出分水嶺绒怨。如果用顆粒的標(biāo)記來模擬對盆地的填充過程纯赎,則重復(fù)上述過程直到整個圖像上的點全部被淹沒,這時所劃出的一系列分水嶺就可以將各個盆地分開南蹂,如圖 (d)所示犬金。分水嶺算法對微弱的邊緣有著良好的響應(yīng),但圖像中的噪聲會使分水嶺算法產(chǎn)生過度分割的現(xiàn)象六剥。
下圖對上述3種基于標(biāo)記的分割過程進行了匯總晚顷。假定待分割的圖像為已經(jīng)過圖像增強過程處理后的灰度圖像,則先要對該圖像進行全局或局部閾值化處理疗疟,以獲得二值圖像该默。由于經(jīng)閾值化操作得到的二值圖像中常含有噪聲顆粒,而且感興趣的顆敛咄可能已經(jīng)被損壞或者被圖像邊界切斷栓袖,因此在正式進行分割前,一般先要用形態(tài)學(xué)處理過程剔除噪聲顆粒店诗,對感興趣的顆粒進行填充并剔除邊界顆粒裹刮。經(jīng)過這些修正操作后的二值圖像中的顆粒不僅能更真實地代表目標(biāo),而且更便于分割庞瘸。
區(qū)域生長是一種古老的圖像分割方法捧弃,最早的區(qū)域生長圖像分割方法是由Levine等提出的,其基本思想是將具有相似性質(zhì)的像素集合起來構(gòu)成區(qū)域擦囊。該方法先從圖像中選定要分割目標(biāo)內(nèi)的一個像素或小塊作為種子违霞,再根據(jù)某種事先確定的準(zhǔn)則,將鄰域中與種子區(qū)域具有相同或相似性質(zhì)的像素或區(qū)域與種子區(qū)域合并瞬场,此后繼續(xù)將最新合并的像素或區(qū)域又作為新的種子繼續(xù)進行合并的過程葛家,直到再沒有滿足條件的像素能被包括進來為止。這種方式的關(guān)鍵是基于灰度泌类、紋理癞谒、顏色等信息底燎,選擇合適的初始種子像素或區(qū)域和合理的生長準(zhǔn)則。T.C.Pong等提出的基于小面(facet)模型的區(qū)域生長法是區(qū)域生長法的典型代表弹砚。
形態(tài)學(xué)重構(gòu)(Morphological Reconstruction)可理解為一種有效的區(qū)域的生長方法双仍。它基于源圖像和一個與源圖像大小相同且包含種子區(qū)域的標(biāo)記圖像(Marker lmage),對灰度圖像或二值圖像中的目標(biāo)進行重構(gòu)桌吃,以實現(xiàn)圖像分割朱沃。在重構(gòu)過程中,源圖像在功能上相當(dāng)于遮罩茅诱,標(biāo)記圖像用來對重構(gòu)過程進行記錄逗物。重構(gòu)的起始位置由標(biāo)記圖像中的種子區(qū)域或一組源圖像中的種子像素來確定。
通過實現(xiàn)分水嶺算法瑟俭,來了解其使用方法翎卓,程序設(shè)計思路如下所示:
實例一開始先照例讀取圖像文件,為后續(xù)操作分配內(nèi)存摆寄,隨后進入主循環(huán)失暴;
若主循環(huán)中監(jiān)測的用戶界面參數(shù)控件有變化,則程序就按照這些參數(shù)執(zhí)行分支結(jié)構(gòu)中的代碼微饥;
其中IMAQ Threshold用于對圖像進行閾值化獲取細(xì)胞的二值圖像逗扒,IMAQ RemoveParticle通過3次腐蝕運算來剔除噪聲,IMAQ Convex Hill對顆粒進行填充欠橘,而IMAQ RejectBorder則用于剔除邊界顆粒矩肩;
經(jīng)過這些優(yōu)化處理后,二值圖像中的顆粒更接近真實的血紅細(xì)胞肃续,且更便于后續(xù)對分支結(jié)構(gòu)中代碼所實現(xiàn)的4種算法進行圖像分割黍檩。
程序設(shè)計如下所示:
效果如下所示:
項目資源下載請參見:LabVIEW圖像區(qū)域分割算法-其它文檔類資源-CSDN下載
圖像分割的質(zhì)量直接決定機器能否快速準(zhǔn)確地進行決策。當(dāng)所采集的圖像質(zhì)量較差痹升、目標(biāo)和背景的灰度差別不大或視場中被測目標(biāo)有交疊時建炫,需要使用圖像的形態(tài)學(xué)分割法和區(qū)域分割法來代替閾值分割法和邊緣分割法畦韭。圖像的數(shù)學(xué)形態(tài)學(xué)處理通常使用具有一定形態(tài)的結(jié)構(gòu)元素與圖像進行形態(tài)學(xué)運算疼蛾,并進而研究圖像各部分的關(guān)系,以解決噪聲抑制艺配、特征提取察郁、邊緣檢測、圖像分割转唉、形狀識別皮钠、紋理分析、圖像恢復(fù)與重建赠法、圖像壓縮等圖像處理問題麦轰。它既可作用于經(jīng)閾值化處理得到的二值圖像,也可用于處理灰度圖像。