亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于干涉條紋骨架的毛刺去除算法

        2020-06-04 05:49:30梅啟升梁秀玲
        應(yīng)用光學(xué) 2020年2期
        關(guān)鍵詞:特征

        梅啟升,王 敏,梁秀玲

        (福建師范大學(xué) 醫(yī)學(xué)光電科學(xué)與技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室 福建省光子技術(shù)重點(diǎn)實(shí)驗(yàn)室,福建 福州 350007)

        引言

        毛刺去除是將骨架的主干保留,去除骨架中的毛刺部分,在圖像處理領(lǐng)域應(yīng)用廣泛,常用于干涉條紋檢測(cè)、指紋識(shí)別、字符檢測(cè)等多個(gè)領(lǐng)域。干涉條紋骨架記錄了干涉場(chǎng)的所有干涉條紋的分布特征與狀態(tài)特征。傳統(tǒng)的骨架去除算法[1-2]需要設(shè)定閾值來(lái)判斷毛刺去除條件,但是對(duì)于部分毛刺可能會(huì)出現(xiàn)不滿足閾值設(shè)定的條件,無(wú)法消除干涉條紋骨架的毛刺部分,且毛刺可能出現(xiàn)較為復(fù)雜的情況,傳統(tǒng)算法也可能無(wú)法解決這些情況的干涉條紋骨架圖像處理問(wèn)題[3]。

        干涉條紋圖像是兩束相干性較強(qiáng)的光波(多用于激光)進(jìn)行干涉行為產(chǎn)生的現(xiàn)象,而干涉條紋骨架最大程度細(xì)化了干涉條紋,保留了干涉條紋最基礎(chǔ)的信息:分布與狀態(tài)。骨架分布表示干涉條紋的分布情況,骨架狀態(tài)表示干涉條紋的長(zhǎng)度、拓?fù)湫訹4]等特征。在圖像分割算法正確的前提下,大部分的毛刺是由于背景噪聲的干擾而產(chǎn)生的,而且毛刺的長(zhǎng)度是無(wú)法確定的。另外,主干、毛刺的頂端也有可能存在其他毛刺,這種情況使得傳統(tǒng)的去除毛刺方案非常不理想,甚至出現(xiàn)方案錯(cuò)誤處理的情況。因此,本文針對(duì)單像素骨架圖像提出一種基于骨架結(jié)構(gòu)的毛刺去除算法,以適應(yīng)各種不同狀態(tài)、特征的毛刺,并在去除毛刺的同時(shí)保留骨架主干部分。本文提出的算法包含2 個(gè)方面:1)通過(guò)干涉條紋骨架圖,利用骨架特征點(diǎn)對(duì)圖像區(qū)域進(jìn)行分類;2)利用骨架特征點(diǎn)追蹤出所有毛刺點(diǎn)并予以刪除處理,當(dāng)出現(xiàn)較為復(fù)雜的骨架特征時(shí),利用多種類型綜合定義該特征并予以區(qū)分。毛刺去除的難點(diǎn)在于需要保留主干部分、去除毛刺部分,這里需要考慮到多種復(fù)雜類型毛刺的層次關(guān)系,避免出現(xiàn)毛刺處理錯(cuò)誤的情況。本文利用迭代算法逐次去除某一層次毛刺,確保復(fù)雜情況下的干涉條紋骨架毛刺能夠通過(guò)正確的順序進(jìn)行去除。最后基于OpenCV 庫(kù)對(duì)多個(gè)毛刺樣本進(jìn)行同時(shí)仿真處理,并依據(jù)最終處理的結(jié)果提出合理的改進(jìn)意見。

        1 干涉條紋骨架毛刺去除算法原理

        本文算法主要框架:分析拓?fù)涮卣?、毛刺分組、去除毛刺、迭代判斷。第1 步,對(duì)圖像進(jìn)行預(yù)處理并根據(jù)預(yù)處理后的骨架毛刺特征選取出端點(diǎn)、節(jié)點(diǎn)。第2 步,通過(guò)端點(diǎn)與方向鏈碼遍歷出所有毛刺點(diǎn),并根據(jù)節(jié)點(diǎn)對(duì)毛刺分組。第3 步,對(duì)同一節(jié)點(diǎn)的所有毛刺組進(jìn)行差分運(yùn)算并去除毛刺,保留主干部分。第4 步,對(duì)處理后的圖像重新進(jìn)行拓?fù)浞治?,判斷是否完全除去了毛刺點(diǎn)。

        1.1 骨架毛刺特征分析

        在單像素骨架圖像中,根據(jù)八鄰域范圍內(nèi)的特征對(duì)骨架圖像進(jìn)行拓?fù)浞治?。定義本身是骨架點(diǎn)而且在八鄰域中有且只有1 個(gè)相連點(diǎn)的像素為端點(diǎn),定義本身是骨架點(diǎn)而且在八鄰域有且只有2 個(gè)不相鄰點(diǎn)的像素為骨架點(diǎn)。對(duì)于其他簡(jiǎn)單骨架毛刺情況,定義本身是骨架點(diǎn)且八鄰域中有大于等于3 個(gè)相連點(diǎn)的像素為可疑節(jié)點(diǎn),如果可疑節(jié)點(diǎn)的八鄰域中沒(méi)有其他可疑節(jié)點(diǎn),那么該點(diǎn)定義為真節(jié)點(diǎn),否則將一個(gè)八鄰域中有4 個(gè)或4 個(gè)以上的可疑點(diǎn)的像素作為真節(jié)點(diǎn),其他作為假節(jié)點(diǎn)。一般骨架毛刺的情況如圖1所示。

        圖1 干涉條紋骨架毛刺的特征點(diǎn)Fig.1 Characteristic points of interference fringe skeleton burrs

        圖1中:G 為骨架點(diǎn),D 為端點(diǎn),F(xiàn) 為假節(jié)點(diǎn),P 為真節(jié)點(diǎn),整個(gè)干涉條紋都可以通過(guò)這些干涉條紋骨架特征點(diǎn)進(jìn)行劃分。而毛刺點(diǎn)、骨架主干點(diǎn)都可以通過(guò)拓?fù)涮卣髋c這些特征點(diǎn)相關(guān)聯(lián)。面對(duì)多種其他的復(fù)雜毛刺情況,根據(jù)對(duì)蔡超等[5]的文獻(xiàn)進(jìn)行研究,加入了多種其他復(fù)雜的骨架毛刺特征樣本,如圖2所示。

        圖2中:F 為假節(jié)點(diǎn),P 為真節(jié)點(diǎn),其他數(shù)值為1 的是骨架點(diǎn)。圖1、圖2能夠比較詳細(xì)地表示毛刺的大部分狀態(tài)。本文基于迭代模式進(jìn)行多級(jí)去除骨架毛刺,但是只有基于骨架毛刺的特征點(diǎn)選取正確,才能有效去除毛刺。

        圖2 復(fù)雜毛刺的特征結(jié)構(gòu)Fig.2 Characteristic structure of complex burrs

        1.2 去除毛刺算法

        本文提出一種基于節(jié)點(diǎn)的迭代去除毛刺算法,需要考慮以下幾個(gè)方案。

        1)判斷迭代終止條件。迭代終止意味著一條干涉條紋骨架處理完畢。如果一個(gè)干涉條紋骨架只有一條主干、多個(gè)毛刺組成,不存在骨架主干分支部分,那么迭代終止條件為

        式中:flag為迭代判斷變量;endpoint為端點(diǎn)個(gè)數(shù)。當(dāng)一條干涉條紋骨架只有2 個(gè)端點(diǎn)時(shí),則一條干涉條紋處理完畢,否則接著循環(huán)處理當(dāng)前的干涉條紋骨架直到滿足判斷條件。

        2)選取毛刺并去除的方法。毛刺是由節(jié)點(diǎn)引出的一條細(xì)線,該細(xì)線是由干涉條紋圖像的背景噪聲造成的。通過(guò)端點(diǎn)可以利用方向鏈碼[6]將毛刺追蹤至節(jié)點(diǎn),然后將同一節(jié)點(diǎn)下的所有毛刺、主干進(jìn)行差分比較。當(dāng)端點(diǎn)數(shù)個(gè)數(shù)大于3 個(gè)時(shí),保留像素點(diǎn)個(gè)數(shù)最多的骨架部分作為第一次處理結(jié)果;當(dāng)端點(diǎn)個(gè)數(shù)等于3 個(gè)時(shí),刪除像素點(diǎn)個(gè)數(shù)最少的毛刺;當(dāng)對(duì)不同節(jié)點(diǎn)下的毛刺時(shí),不進(jìn)行差分比較處理。

        式中:Trunk為保留下來(lái)的骨架;Max為取最大骨架的函數(shù);Delete為刪除處理的函數(shù);Min為取最小毛刺的函數(shù);burr1、burr2、trunk為所有毛刺與主干;P為節(jié)點(diǎn);endpoint為端點(diǎn)個(gè)數(shù)。該算法是基于干涉條紋骨架主干部分只有2 個(gè)端點(diǎn),其他端點(diǎn)是毛刺產(chǎn)生的。

        3)骨架主干與毛刺分類問(wèn)題。如果存在復(fù)雜骨架的情況,在存在3 個(gè)以上端點(diǎn)的情況下出現(xiàn)兩個(gè)主干部分進(jìn)行比較,采用閾值判斷條件。閾值判斷條件設(shè)置如下:

        式中:Trunk為保留下來(lái)的骨架;Max為取最大骨架的函數(shù);Skip processing為跳過(guò)本次處理;burr1、burr2、trunk為同一節(jié)點(diǎn)下的所有毛刺與主干;TN為骨架主干個(gè)數(shù)。這種閾值判斷的目的不是選取毛刺而是保存骨架主干。

        4)修復(fù)單條骨架斷點(diǎn)部分的方案。如果干涉條紋骨架主干部分產(chǎn)生了斷點(diǎn),本文用基于八鄰域的簡(jiǎn)單修復(fù),修補(bǔ)方案如下:如果本身像素點(diǎn)不是骨架點(diǎn),而且八鄰域內(nèi)存在2 個(gè)對(duì)稱的骨架點(diǎn),則將本身像素點(diǎn)設(shè)置為骨架點(diǎn)(見圖3)。

        圖中K 周圍存在2 個(gè)對(duì)稱的骨架點(diǎn),這種情況將K 點(diǎn)設(shè)置為骨架點(diǎn),數(shù)值設(shè)置為1。這種基于模板的修補(bǔ)方案能夠有效提升算法的容錯(cuò)性,并提升骨架樣本進(jìn)行仿真的魯棒性。

        5)多條干涉條紋骨架毛刺處理方法。干涉條紋圖像可能存在多個(gè)干涉條紋,細(xì)化得到的圖像依舊是多個(gè)干涉骨架。多個(gè)干涉條紋骨架需要分級(jí)處理,首先對(duì)不同干涉條紋簡(jiǎn)單標(biāo)定級(jí)次,提取不同級(jí)次的骨架圖進(jìn)行獨(dú)立處理,單條骨架處理結(jié)果單獨(dú)保存,直到所有骨架處理完畢之后將所有骨架圖合并輸出。

        圖3 基于八鄰域模板的修復(fù)方案Fig.3 Repair scheme based on 8 neighborhood template

        根據(jù)以上所有方案,本文基于節(jié)點(diǎn)的迭代去除毛刺算法步驟如下:

        1)對(duì)干涉條紋骨架進(jìn)行級(jí)次標(biāo)記,對(duì)不同級(jí)次的骨架單獨(dú)處理,并進(jìn)行循環(huán)準(zhǔn)備;

        2)首先設(shè)置迭代條件,并正確判斷圖內(nèi)的所有干涉條紋骨架、端點(diǎn)、節(jié)點(diǎn)、斷點(diǎn);

        3)修補(bǔ)斷點(diǎn),并根據(jù)端點(diǎn)利用八鄰域模板進(jìn)行毛刺追蹤到節(jié)點(diǎn)終止,并以節(jié)點(diǎn)保存所有毛刺、主干的長(zhǎng)度與骨架點(diǎn)坐標(biāo);

        4)設(shè)置主干閾值條件,防止出現(xiàn)錯(cuò)誤去除主干部分,并根據(jù)節(jié)點(diǎn)逐級(jí)對(duì)毛刺進(jìn)行刪除;

        5)去除毛刺結(jié)束后進(jìn)行迭代判斷,如果滿足條件,跳出當(dāng)前骨架處理進(jìn)入下一條骨架進(jìn)行處理,否則骨架沒(méi)有處理完畢還存在其他毛刺接著跳至第3 步進(jìn)行迭代;

        6)所有干涉條紋骨架處理完畢,一起輸出當(dāng)前所有條紋骨架圖片。

        2 去除毛刺算法的仿真實(shí)驗(yàn)

        實(shí)驗(yàn)采用Visual Studio 2017 平臺(tái),采用OpenCV庫(kù)[6]對(duì)圖像進(jìn)行形態(tài)學(xué)骨架提取,軟件環(huán)境Windows7,硬件環(huán)境CPU 為i7 處理器。首先建立一個(gè)C++項(xiàng)目,并包含OpenCV 的庫(kù)目錄,最后建立一個(gè)頭文件和主程序文件。用imread 函數(shù)[7]讀取待處理的圖像,并通過(guò)imshow 函數(shù)進(jìn)行復(fù)現(xiàn)[8]。

        首先對(duì)干涉條紋進(jìn)行級(jí)次標(biāo)定,單次級(jí)次標(biāo)定采用種子點(diǎn)膨脹算法如下:

        式中:H為單條骨架提取圖像;F為骨架的原圖像;I為設(shè)置的種子點(diǎn);D為dilate 膨脹處理;RDF(I)表示對(duì)種子點(diǎn)D進(jìn)行迭代膨脹處理,直到與種子點(diǎn)膨脹到與對(duì)應(yīng)干涉條紋相同,一個(gè)種子點(diǎn)可以膨脹一條骨架,提取出一條骨架之后,要把原圖像中的對(duì)應(yīng)骨架去除以便進(jìn)行下一次提取。種子膨脹提取算法如圖4所示。

        圖4 種子膨脹提取算法Fig.4 Seed expansion extraction algorithm

        選取出單條骨架之后,需要對(duì)骨架進(jìn)行預(yù)處理防止出現(xiàn)非單像素寬度的問(wèn)題,這里采用的是Zhang氏細(xì)化算法[9]、Rosen 細(xì)化算法[10]。在此之后,進(jìn)行圖像骨架特征點(diǎn)[11]提取,根據(jù)本文第1 節(jié)的骨架特征提取出端點(diǎn)、假節(jié)點(diǎn)、真節(jié)點(diǎn)。端點(diǎn)、節(jié)點(diǎn)的選取需要通過(guò)全圖掃描逐點(diǎn)判斷并標(biāo)記,直到全圖掃描完畢,如圖5所示。

        特征點(diǎn)選取出來(lái)之后,對(duì)所有端點(diǎn)進(jìn)行鏈表追蹤,追蹤時(shí)面對(duì)復(fù)雜圖像可能出現(xiàn)追蹤過(guò)度或者追蹤不足的情況,本文根據(jù)節(jié)點(diǎn)的特性[12],在追蹤的算法中加入了以下判定條件:如果追蹤點(diǎn)的八鄰域中存在真節(jié)點(diǎn),那么循環(huán)終止。這里有效利用了節(jié)點(diǎn)的特征,同時(shí)也為毛刺分類端點(diǎn)打下基礎(chǔ)。

        圖5 特征點(diǎn)提取Fig.5 Feature points extraction

        根據(jù)節(jié)點(diǎn)對(duì)端點(diǎn)追蹤到的毛刺、主干進(jìn)行分類,如果多個(gè)毛刺、主干追蹤到同一個(gè)節(jié)點(diǎn)那么多個(gè)毛刺、主干分步保存至OpenCV 中的vector<vector>Point 類中,這個(gè)類表示一個(gè)二重元胞[13],其中元胞內(nèi)保存的是追蹤毛刺點(diǎn)、主干點(diǎn)的坐標(biāo)。根據(jù)節(jié)點(diǎn)與毛刺、主干的位置關(guān)系將毛刺、主干點(diǎn)的所有坐標(biāo)保存在vector 類的多維元胞中。然后根據(jù)第1 章的方案進(jìn)行差分比較去除毛刺,如圖6所示。

        單個(gè)條紋處理完畢之后,進(jìn)行多個(gè)骨架迭代處理[14]直到所有干涉骨架都去除毛刺完畢才最終輸出到最終結(jié)果上,如圖7所示。

        圖6 去除毛刺Fig.6 Deburring

        圖7 最終處理結(jié)果Fig.7 Final processing results

        3 結(jié)果分析

        干涉條紋獲取的實(shí)驗(yàn)裝置有632.8 nm 半導(dǎo)體激光器、擴(kuò)束鏡、偏振元件、分光棱鏡、1/4 玻片、待測(cè)元件、標(biāo)準(zhǔn)樣板等。采用的算法是基于干涉條紋骨架的特征進(jìn)行的毛刺去除算法,為了保證提出的算法具有合理性與普適性,本文用了多個(gè)樣本進(jìn)行算法處理,處理結(jié)果如圖8所示。

        對(duì)實(shí)例樣本進(jìn)行毛刺去除處理,對(duì)其處理結(jié)果進(jìn)行驗(yàn)證:掃描處理結(jié)果圖中的所有斷點(diǎn)、分叉點(diǎn)(節(jié)點(diǎn))、端點(diǎn),如果處理結(jié)果圖中每一條骨架主干只包含2 個(gè)端點(diǎn),沒(méi)有斷點(diǎn)、分叉點(diǎn)(節(jié)點(diǎn)),則處理結(jié)果正確,否則處理的結(jié)果錯(cuò)誤。根據(jù)上述的驗(yàn)證方案,本文給出的實(shí)例測(cè)試結(jié)果都滿足要求。為了驗(yàn)證算法的普遍性,對(duì)樣本庫(kù)中所有毛刺圖像進(jìn)行處理和驗(yàn)證,發(fā)現(xiàn)毛刺去除算法的正確率為94%。剩余6%的毛刺圖像中包含了更加復(fù)雜的黏連情況,多條毛刺與其他骨架主干部分存在“黏連”,需要進(jìn)行節(jié)點(diǎn)掃描,并運(yùn)用八鄰域追蹤的處理,將毛刺黏連部分提取出來(lái),再予以處理[15]。

        圖8 多個(gè)樣本的處理結(jié)果Fig.8 Processing results of multiple samples

        通過(guò)上面多種骨架的驗(yàn)證,不難發(fā)現(xiàn)該種算法具有合理性與普適性。為了在保證處理結(jié)果不變的前提下,提升算法的容錯(cuò)性,防止出現(xiàn)主干中的單個(gè)像素識(shí)別錯(cuò)誤當(dāng)做毛刺處理了,本文添加了骨架修復(fù)[16]部分。傳統(tǒng)的毛刺去除算法簡(jiǎn)單地將分叉點(diǎn)(節(jié)點(diǎn))以外的主干、毛刺部分同時(shí)進(jìn)行刪減閾值長(zhǎng)度,這種方案簡(jiǎn)便但具有盲目性,而本文中介紹的算法保留了骨架主干部分,具有較高的針對(duì)性,只去除骨架中的毛刺部分。

        4 結(jié)論

        本文根據(jù)骨架結(jié)構(gòu)特征對(duì)干涉條紋骨架的主干、毛刺部分進(jìn)行提取并差分比較,通過(guò)差分比較的結(jié)果進(jìn)行骨架毛刺去除處理,提出一種識(shí)別多種特征點(diǎn)的思路,基于該思路進(jìn)行毛刺圖像分析。由于干涉條紋骨架可能存在多級(jí)毛刺且毛刺長(zhǎng)度有長(zhǎng)有短,本文基于節(jié)點(diǎn)分類的多個(gè)毛刺、骨架差分算法處理,相較于傳統(tǒng)的閾值法去除毛刺更具有合理性。本文為預(yù)防處理不完整的情況設(shè)定了迭代循環(huán)去除毛刺,為預(yù)防處理過(guò)度的情況設(shè)定了主干修補(bǔ)模塊,相較于傳統(tǒng)固定模板的處理方案更加具有靈活應(yīng)變能力與容錯(cuò)能力。不足之處在于骨架特征點(diǎn)的提取是否能夠應(yīng)對(duì)更為復(fù)雜的干涉條紋骨架毛刺樣本,這個(gè)有待驗(yàn)證與提升。其次在于如果存在毛刺部分、主干部分長(zhǎng)度相同但是形態(tài)不同的部分需要如何處理,這也有待新的算法提出。但是總體來(lái)說(shuō),本文算法能夠處理大多數(shù)干涉條紋骨架毛刺圖片,是一種行之有效的處理算法。

        猜你喜歡
        特征
        抓住特征巧觀察
        離散型隨機(jī)變量的分布列與數(shù)字特征
        具有兩個(gè)P’維非線性不可約特征標(biāo)的非可解群
        月震特征及與地震的對(duì)比
        如何表達(dá)“特征”
        被k(2≤k≤16)整除的正整數(shù)的特征
        不忠誠(chéng)的四個(gè)特征
        詈語(yǔ)的文化蘊(yùn)含與現(xiàn)代特征
        新聞傳播(2018年11期)2018-08-29 08:15:24
        抓住特征巧觀察
        基于特征篩選的模型選擇
        国产白丝在线| 国产成人精品2021| 人妻少妇边接电话边娇喘| 福利网址在线观看| 色偷偷亚洲av男人的天堂| 中文字幕一二三四五六七区| 大学生高潮无套内谢视频| 亚洲精品无码国模| 亚洲日韩成人无码不卡网站| 免费看av网站在线亚洲| 国产欧美一区二区精品久久久 | 日本亚洲一级中文字幕| 久久久国产精品黄毛片| 成人影院yy111111在线| 免费一区二区三区久久| 东风日产系列全部车型| 国产乱码精品一区二区三区久久 | 日韩成人无码v清免费| 国产亚洲精品综合在线网站| 欧美xxxxx在线观看| 亚洲综合色自拍一区| 免费va国产高清不卡大片| 一区二区三区四区黄色av网站| 乱码av麻豆丝袜熟女系列| 亚洲人成网站77777在线观看 | 青青青爽在线视频观看| 日韩高清亚洲日韩精品一区| 亚洲中国美女精品久久久| 女优一区二区三区在线观看 | 蜜桃av在线免费网站| 国产精品无圣光一区二区| 亚洲AV无码一区二区三区性色学| 91精品福利一区二区三区| 日本熟妇美熟bbw| 欧美午夜一区二区福利视频| 国产免费视频一区二区| 久久精品色福利熟妇丰满人妻91| 国产精品一区二区久久不卡| 中出高潮了中文字幕| 在线人妻va中文字幕| 欧美私人情侣网站|