色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > LabVIEW感興趣區(qū)域分析(實戰(zhàn)篇—1)

          LabVIEW感興趣區(qū)域分析(實戰(zhàn)篇—1)

          發(fā)布人:美男子玩編程 時間:2022-06-22 來源:工程師 發(fā)布文章

          ROI(region of interest),感興趣區(qū)域。機器視覺、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱為感興趣區(qū)域,ROI。在Halcon、OpenCV、Matlab等機器視覺軟件上常用到各種算子(Operator)和函數(shù)來求得感興趣區(qū)域ROI,并進行圖像的下一步處理。為圖像處理設(shè)定ROI,可以將注意力集中在要解決問題的主要方面,減少要處理的數(shù)據(jù)量,提高系統(tǒng)的處理速度和實時性。


          在機器視覺系統(tǒng)開發(fā)過程中,常見的ROI操作包括構(gòu)建ROI、關(guān)聯(lián)ROI到圖像顯示窗口、從圖像顯示窗口中提取ROI以及清除圖像顯示窗口中的ROI等。圖像顯示窗口中的圖像不斷變化時,與之關(guān)聯(lián)的ROI可以保持不變。


          ROI可通過各種標(biāo)準(zhǔn)幾何形狀或自由的封閉域來描述。從數(shù)據(jù)結(jié)構(gòu)角度來看,ROI自身并不包括圖像數(shù)據(jù),它只是說明圖像中哪個區(qū)域的數(shù)據(jù)需要被重點關(guān)注。



          1


          ROI定義及實現(xiàn)方法



          Nl Vision使用ROl Descriptor數(shù)據(jù)結(jié)構(gòu)描述ROI,下圖顯示了該數(shù)據(jù)結(jié)構(gòu)及其圖解。


          圖片

          圖片


          由圖可知,ROI可以由其矩形邊界(global rectangle)和一個或多個不同的輪廓(contours)共同定義。矩形邊界是指一個底邊與圖像底邊平行,且恰好包含整個ROI的矩形,該矩形左上和右下頂點的坐標(biāo)保存在ROI數(shù)據(jù)結(jié)構(gòu)中的Global Rectangle數(shù)組中。ROI區(qū)域可以通過一個或多個幾何輪廓來限定,這些不同幾何輪廓所定義區(qū)域的交集構(gòu)成了整個ROI。


          用于限定ROI區(qū)域的輪廓也保存在一個稱為Contours的數(shù)組中,數(shù)組的每個元素由特征ID、類型(type)和包含多個坐標(biāo)值的數(shù)組Coordinates構(gòu)成。特征ID用來說明該元素描述的輪廓是ROl的外邊沿(external)還是內(nèi)邊沿(internal)。如果為外邊沿,則其內(nèi)部的所有區(qū)域被看作是ROI區(qū)域的一部分;而如果為內(nèi)邊沿,其外部所有部分均被當(dāng)作是ROI區(qū)域的一部分。type值指定了元素所描述輪廓的幾何形狀。Coordinates數(shù)組中每兩個元素構(gòu)成了輪廓中多個頂點的坐標(biāo)。


          由此可見,Contours數(shù)組中的元素定義的輪廓本質(zhì)上用于描述圖像中某個區(qū)域,而單個或多個元素共同描述的輪廓所限定區(qū)域的交集就是最終希望得到的ROl。

          在LabVIEW中使用Nl Vision定義ROl的方法大致可分為交互式、程序代碼定義以及圖像遮罩轉(zhuǎn)換三大類,如下表所示。


          圖片


          交互方式定義ROl時,需要用戶使用各種ROI工具在圖像中指定ROI區(qū)域,采用交互方式定義ROI可以減少程序代碼的編寫量,但在程序運行過程中需要用戶參與。由于用戶的操作習(xí)慣和操作環(huán)境千差萬別,因此即使同一圖像同一用戶每次繪制的ROI也可能不同。如果要減少用戶參與,精確定義ROI,則可通過程序代碼來實現(xiàn)。相應(yīng)地,開發(fā)人員也要花更多的精力研究如何在圖像中精準(zhǔn)確定ROI位置,并編寫代碼。最后,ROI也可以與圖像遮罩相互轉(zhuǎn)換,因此使用圖像遮罩也可以定義ROI。


          機器視覺系統(tǒng)開發(fā)過程中,常用到的幾何形狀有點、線段、矩形和環(huán)面。下表列出了幾何形狀簡易數(shù)據(jù)結(jié)構(gòu)與ROl Descriptor之間相互轉(zhuǎn)換的VI:


          圖片


          除了以上介紹的ROI轉(zhuǎn)換VI,Nl Vision還提供了其他幾個與ROI操作相關(guān)的重要VI,包括圖像遮罩(lmage Mask)與ROI相互轉(zhuǎn)換的VI、ROI組合與拆分、ROI在不同坐標(biāo)系之間的轉(zhuǎn)換以及將已標(biāo)記的圖像(Label lmage)區(qū)域轉(zhuǎn)換為ROl的VI。這些VI可參考說明手冊理解:


          圖片


          查看ROI轉(zhuǎn)換VI,在LabVIEW程序框圖中點擊鼠標(biāo)右鍵,查看視覺與運動相關(guān)函數(shù),查看Vision Utilities模塊中的Region of Interest,步驟如下所示:


          圖片


          Region of Interest包含VI如下所示:


          圖片

          用戶可結(jié)合說明手冊,使用相關(guān)的Region of Interest VI。



          2


          基礎(chǔ)案例:圖像感興趣區(qū)域手動標(biāo)記



          本案例使用ROI構(gòu)建器以交互方式定義ROI的程序界面和程序代碼,如下所示:


          圖片


          案例功能描述如下所示:

          • 程序開始先將圖像CSDN.png讀入內(nèi)存等待進一步處理。

          • 緊接著由While循環(huán)和事件結(jié)構(gòu)組成的事件處理器待命,隨時準(zhǔn)備處理各種用戶界面事件。

          • 當(dāng)用戶單擊Display Image按鈕時,Showlmg Value Change事件分支中的IMAQ WindSetup和IMAQWind Draw就把內(nèi)存中的圖像繪制在一個獨立的外部圖像顯示窗口中。

          • 若用戶隨后單擊ConstructROI按鈕,DefROl Value Change事件會被觸發(fā),其對應(yīng)事件分支中的IMAQConstructROI將創(chuàng)建ROI構(gòu)造器。

            由于傳遞給它的窗口編號為0,與之前IMAQWind Draw繪制的外部圖像顯示窗口編號(默認值窗口編號為0)一致,因此,IMAQConstructROl會將0號編號的圖像顯示窗口臨時變?yōu)槟B(tài)窗口形式的ROI構(gòu)造器并在其右側(cè)顯示ROI工具條。

          • 當(dāng)用戶在ROI構(gòu)造器中定義好感興趣區(qū)域并確認后,程序就返回所定義區(qū)域所對應(yīng)的ROl Descriptor。

          • 此時,若用戶再次單擊Display lmage按鈕,就會發(fā)現(xiàn)之前定義的ROl顯示在窗口中,說明它已經(jīng)與該窗口關(guān)聯(lián)。

          • 注意,在交互方式下,若構(gòu)造器指定了窗口編號,則創(chuàng)建的ROI會自動與該窗口關(guān)聯(lián)。

            若要使用程序代碼將ROI Descriptor描述的ROI與圖像顯示窗口關(guān)聯(lián),可以使用IMAQ WindSetROl。

            如果要清除圖像顯示窗口中的ROI,可以單擊Erase ROI按鈕,它將觸發(fā)EraseROl Value change事件,調(diào)用IMAQ WindEraseROI清除ROI。

          • 最后,單擊Exit按鈕退出程序時,IMAQ WindClose和IMAQ Dispose會清理現(xiàn)場,結(jié)束程序。


          項目演示效果如下所示:


          圖片



          3


          進階案例:圖像顆粒自動標(biāo)記



          圖像標(biāo)記 (Label lmage)操作常用于顆粒(Particles)分析,它把二值圖像中相互連通的一組像素(稱為顆粒)全部更改為某一固定灰度值(用8位或16位表示)??赏ㄟ^4連通或8連通原則來判斷像素是否屬于同一顆粒。圖像標(biāo)記操作的輸入圖像為二值圖像,但其輸出卻是含有為每個顆粒都設(shè)置了灰度標(biāo)記值的灰度圖像,其中灰度標(biāo)記值的數(shù)量等于圖像中顆粒的數(shù)量再加上用于背景的灰度標(biāo)記值0。如果圖像使用了調(diào)色板,則被標(biāo)記的多個顆粒有可能使用同一灰度標(biāo)記值。


          本案例是一幅圖像中顆粒進行標(biāo)記的實例程序,如下所示:


          圖片


          案例功能描述如下所示:

          • 程序代碼在將圖像Alu.png讀入內(nèi)存后即進入圖像標(biāo)記循環(huán)。

          • 在循環(huán)中,若用戶沒有改變IMAQ Threshold使用的閾值,則循環(huán)就不做任何處理,否則就會對圖像中的顆粒或區(qū)域進行標(biāo)記。

          • 標(biāo)記的過程是先用IMAQ Threshold將圖像分割為二值圖像,再經(jīng)形態(tài)學(xué)處理函數(shù)IMAQ Morphology對顆?;騾^(qū)域的邊緣做平滑處理,隨后才由IMAQ Label(位于LabVIEW的Vision andMotion→lmage Processing→Processing函數(shù)選板中)將各區(qū)域內(nèi)的像素修改為灰度標(biāo)記值。

          • 除了對圖像標(biāo)記,程序還返回已標(biāo)記的顆粒數(shù),并使用IMAQ Quantify返回各標(biāo)記區(qū)域的像素灰度統(tǒng)計信息,IMAQ Quantify的Image Mask參數(shù)必須為標(biāo)記圖像。

          • 完成了圖像的標(biāo)記,就可以設(shè)法將已標(biāo)記圖像中的某一感興趣部分提取出來單獨分析。

            IMAQ LabelToROI可以把圖像中已標(biāo)記區(qū)域轉(zhuǎn)換為ROI。

            如果某個標(biāo)記值對應(yīng)多個區(qū)域,則其返回的ROlDescriptor將包含多個區(qū)域的輪廓。

            在使用它時還可以指定是否僅轉(zhuǎn)換ROI外部輪廓和ROI包含的最大像素個數(shù),以進一步約束轉(zhuǎn)換結(jié)果。


          項目演示效果如下所示:


          圖片


          *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



          關(guān)鍵詞: LabVIEW

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉