<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          LabVIEW灰度圖像操作與運算(基礎(chǔ)篇—2)

          共 5408字,需瀏覽 11分鐘

           ·

          2022-01-04 01:32

          點擊上方藍色字體,關(guān)注我們


          完成機器視覺系統(tǒng)的搭建、校準并且確認其可以采集檢測目標的圖像后,就可以集中精力開發(fā)各種圖像分析、處理以及模式識別算法。


          為了設(shè)計準確性和魯棒性都較高的算法,并提高其執(zhí)行速度,一般需要事先對整幅圖像或部分像素進行操作,使圖像尺寸或形狀更適合計算機處理。某些時候還要對圖像進行算術(shù)和邏輯運算,以消除噪聲或提高圖像的對比度。這些前期的圖像操作或運算不僅會在空間域增強圖像,還能極大地提高后續(xù)算法的執(zhí)行速度及其有效性。



          1


          像素操作



          像素操作(Pixel Manipulation)通常用在各種圖像處理算法之前,為算法的順利執(zhí)行做準備。像素操作具體包括:讀取或設(shè)置圖像中的某個像素值、更改某個區(qū)域的所有像素值、逐行或逐列讀取或更改像素值等。下圖顯示了NI Vision提供的像素操作函數(shù),它們位于LabVIEW的視覺與運動→Vision Utilities→Pixel Manipulation函數(shù)選板中。



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



          使用LabVIEW更改單點像素值、行列像素值、線段所覆蓋像素值以及圖像填充的實際例子,加深對像素操作的理解和應(yīng)用。


          程序設(shè)計思路如下所示:

          • 程序開始從文件中讀入圖像Lena,此后IMAQ SetPixelValue將坐標為(200,200)的像素值更改為255(白色),并用IMAQ GetPixelValue讀取改動后的值,以確認更改成功。

          • IMAQ SetRowCol可以更改圖像中某一行或某一列的數(shù)據(jù),由于設(shè)置了行參數(shù)Row為FALSE,因此它將使用Pixels (U8)數(shù)組中的值更改編號為50的一列數(shù)據(jù)。

          • 程序中Pixels (U8)數(shù)組中僅有兩個元素,此時,進行替換時只有前兩個像素被更改。

          • IMAQ GetRowCol可以讀取更改后的第50列像素值,以確認像素更改操作的結(jié)果。

          • IMAQ GetPixelLine可以返回 (10,10)和(60,60)兩點所確定的線段覆蓋的像素值,這些返回的像素值被Replace Array Subset用含有100個元素的子數(shù)組替換后,再次作為IMAQ SetPixelLine的輸入,用于更改線段所覆蓋的像素值。

          • 程序中IMAQ Filllmage會用黑色(像素值為0)對圖像進行填充,由于使用了圖像遮罩,因此只有遮罩圖像中非零像素所覆蓋的部分會被填充。默認情況下,圖像遮罩會被放置在使用它的圖像原點,程序并未使用默認值,而是用IMAQ SetOffset將圖像遮罩左上角移動到使用它的圖像中(220,220)位置。


          程序設(shè)計如下所示:



          程序運行效果如下所示:




          2


          灰度圖像操作



          圖像操作(Image Manipulation)是指對圖像執(zhí)行的平移(Shift/Translation)、旋轉(zhuǎn)(Rotate)、縮放(Zoom)、拉直(Unwrap)等幾何變換以及重新采樣、對稱(Symmetry)變換、提取(Extract)圖像某一區(qū)域的操作等。大多數(shù)圖像操作函數(shù)并不直接改變圖像的像素值,而只是在空間上對它們進行重新組織或插值。


          下圖顯示了NI Vision提供的圖像操作函數(shù),它們位于LabVIEW的視覺與運動→Vision Utilities→lmage Manipulation函數(shù)選板中。



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



          2.1、圖像平移、旋轉(zhuǎn)


          圖像平移是指將圖像中所有的點都沿著水平或垂直方向移動一定的距離。若假定像素的初始坐標為(x,yo),經(jīng)平移后其對應(yīng)的坐標為(x,yt),圖像在x、y方向的平移量分別為xoffset和yoffset,則有:



          圖像旋轉(zhuǎn)是指圖像像素以某一點為旋轉(zhuǎn)點,沿逆時針(角度為正)或順時針(角度為負)轉(zhuǎn)動一定角度。多數(shù)情況下,圖像旋轉(zhuǎn)操作都以圖像中心點作為旋轉(zhuǎn)點。和圖像平移類似,旋轉(zhuǎn)操作也會引起圖像大小的改變。圖像中部分像素可能會移動到原圖范圍之外,此時可以丟棄這部分像素,以保持原圖的尺寸,也可以擴展圖像尺寸以匹配旋轉(zhuǎn)后的圖像,如下圖所示:



          接下來使用LabVIEW實現(xiàn)圖像平移和旋轉(zhuǎn),程序設(shè)計思路如下所示:

          • 程序先在內(nèi)存中為源圖像和圖像處理過程分配了緩沖區(qū)Src和Dst,并從圖像文件中讀入大小為512×512的待處理圖像Lena。

          • 隨后使用IMAQ Shift進行圖像平移操作時,由于Dst緩沖被連接至VI的ImageDst參數(shù),因此平移操作會保持源圖數(shù)據(jù)不變,而只是基于其數(shù)據(jù)將圖像延水平和垂直方向均移動80像素的結(jié)果保存在Dst緩沖區(qū)中。

          • 對于那些因平移操作變?yōu)榭瞻椎膮^(qū)域,根據(jù)Replace Value參數(shù)的值,VI將其灰度值填充為200。

          • 程序中的IMAQ Rotate可將圖像沿順時針方向旋轉(zhuǎn)30°(-30°)。

            對于那些因旋轉(zhuǎn)無法在源圖像中找到對應(yīng)值的像素,VI使用了雙線性插值方法計算其值;

            而對于空白區(qū)域,則使用了默認值0進行填充。

          • 由于圖像旋轉(zhuǎn)后的尺寸會有變化,部分圖像數(shù)據(jù)可能會移動到源圖像尺寸之外,因此需要通過Maintain Size參數(shù)來選擇是保持原圖像尺寸不變(True),還是要保留所有圖像數(shù)據(jù)(False)。


          程序設(shè)計如下所示:



          由程序的運行結(jié)果可以看出,當選擇保持圖像尺寸不變時,旋轉(zhuǎn)到源圖像之外的數(shù)據(jù)會被丟棄;而當選擇保留所有圖像數(shù)據(jù)時,旋轉(zhuǎn)后的圖像尺寸會比源圖像尺寸大。效果如下所示:



          2.2、圖像縮小、放大


          使用IMAQ Resample、IMAQ Expand和IMAQ Extract 2實現(xiàn)圖像縮放功能。程序設(shè)計思路如下:

          • 程序先在內(nèi)存中為源圖像和圖像處理過程分配了緩沖區(qū)Src和Dst,并從圖像文件中讀入大小為512×512的待處理圖像Lena。

          • 緊接著IMAQ Resample和IMAQ Extract 2分別將圖像尺寸縮小至64×64。

            雖然兩個VI均將圖像縮小至同樣尺寸,但它們使用的方法和圖像縮小后的效果卻完全不同。

          • IMAQResample在縮小圖像時基于三次樣條插值方法填充新圖像中的數(shù)據(jù),而IMAQ Extract2則每隔8行、8列抽取數(shù)據(jù)行列。

          • 完成圖像縮小后,程序又使用IMAQ Resample和IMAQ Expand將縮小后的圖像放大至512×512。


          程序設(shè)計如下所示:



          程序運行效果如下所示:



          2.3、圖像對稱變換


          Nl Vision使用IMAQ Symmetry實現(xiàn)各種類型的圖像對稱變換。開發(fā)人員只需根據(jù)需要選擇對稱變換的類型,而無須關(guān)心各種矩陣計算的細節(jié),即可得到想要的結(jié)果。需要注意的是,主次對角線對稱操作僅適用于長、寬相等的圖像。


          程序設(shè)計如下所示:



          程序運行效果如下所示:



          2.4、3D可視化


          Nl Vision還提供了一個以3D方式顯示灰度圖像數(shù)據(jù)的圖像顯示函數(shù)IMAQ 3DView VI。它在顯示圖像數(shù)據(jù)時,用OXY平面表示像素位置坐標,而用Z軸表示像素,程序?qū)崿F(xiàn)如下所示:



          程序運行效果如下所示:




          3


          灰度圖像運算



          圖像運算是指對一幅或多幅圖像執(zhí)行加(Add)、減(Subtract)、乘(Multiply)、除(Divide)等代數(shù)運算,與(And)、或(Or)、非(Not)、異或(Xor)等邏輯運算,兩幅圖像的比較(Compare)以及求模(Modulo)、求差值的絕對值(AbsoluteDifference)等操作的過程。它們不僅可用于圖像采集過程中的延時比較、圖像背景中的光線偏移矯正、相互連接或相互交疊圖像目標的識別以及多幅圖像與某一圖像模型之間的對比等,還可用于圖像的閾值化或遮罩處理、亮度或?qū)Ρ榷鹊恼{(diào)節(jié)等。此外,通過對多幅相同場景的圖像求平均,還能實現(xiàn)圖像的濾波功能。


          下圖顯示了Nl Vision提供的圖像運算函數(shù),它們位于LabVIEW的視覺與運動→lmageProcessing→Operator函數(shù)子選板中。



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



          圖像運算過程遵循以下規(guī)則:

          1、兩幅灰度圖像進行運算時,圖像中的像素逐―進行點對點運算。

          2、一幅灰度圖像與某一常量進行運算時,圖像中的所有像素均與該常量進行該運算。

          3、當RGB彩色圖像與灰度圖像或某一常量進行運算時,將灰度圖像或常量與RGB圖像的每一分量進行運算。

          4、兩幅RGB圖像進行運算時,對應(yīng)分量進行運算。


          此外,當參與運算的兩幅圖像類型不同時,運算后所得圖像的類型將與位深度較大的圖像類型保持一致。例如,類型為U8的灰度圖像與類型為I16的灰度圖像相加時,所得到的圖像類型為I16;當某一灰度圖像減去某一常量時,所得圖像的類型仍為灰度圖像;U8類型的灰度圖像或常量與RGB32彩色圖像進行運算時,得到的圖像仍為RGB32彩色圖像;RGB32與RGB64圖像進行運算時,將得到類型為RGB64的圖像。


          3.1、圖像平均降噪


          圖像加法運算最常見的用途是實現(xiàn)圖像的疊加功能。利用此功能,可以將不同圖像中的目標合并到同一圖像中。圖像和一個常量相加可以提高圖像的整體亮度。此外,利用圖像相加運算可以實現(xiàn)圖像的空間濾波功能。


          具體來說,可以對同一場景的多幅圖像求平均,以便有效地降低加性(additive)隨機噪聲。對于經(jīng)過長距離模擬通信方式傳送的圖像(如航天器傳回的星際圖像),這種處理必不可少。


          接下來使用圖像加法運算實現(xiàn)圖像平均降噪,程序設(shè)計思路如下所示:

          • 程序先在內(nèi)存分配了Average和temp兩個緩沖區(qū)。

          • 然后枚舉出保存噪聲圖像的文件夾中所有.png圖文件名,并將第一幅圖像讀入Average緩沖區(qū)中。

          • 此后,F(xiàn)or循環(huán)逐個將其他噪聲圖像讀入temp緩沖區(qū),并與Average中的圖像進行相加。

            相加的結(jié)果將替換Average緩沖區(qū)中的原有圖像,而且其圖像引用會被shift寄存器傳遞至下一次循環(huán)。

            在后續(xù)循環(huán)中,新讀入temp緩沖區(qū)的圖像將繼續(xù)與之前Average緩沖區(qū)中的計算結(jié)果相加,直到所有圖像都加到一起。

          • 循環(huán)結(jié)束后,只要將Average緩沖區(qū)中的圖像相加結(jié)果與圖像總數(shù)相除,即可得到圖像的平均結(jié)果。

          • 由于圖像相加過程可能出現(xiàn)計算結(jié)果超出原圖像的數(shù)據(jù)類型范圍的情況,因此在循環(huán)開始前,先將保存計算結(jié)果的Average緩沖區(qū)中圖像的類型由U8轉(zhuǎn)換為I16,再在計算完成后轉(zhuǎn)換為原類型。


          程序?qū)崿F(xiàn)如下所示:



          運行程序并觀察程序運行過程中圖像的顯示,不難發(fā)現(xiàn)經(jīng)平均計算后的圖像明顯比原圖像含有較少的噪聲,效果如下所示:



          3.2、提取夜視儀閃光故障點


          圖像相減運算又稱為圖像差分運算,常用于去除不需要的疊加性圖案或檢測場景的變化或運動目標。在工業(yè)環(huán)境下,如果圖像背景可控,差分運算和閾值化處理結(jié)合能快速有效地建立機器視覺系統(tǒng)。如果將同一景物在不同時間拍攝的圖像或同一景物在不同波段的圖像相減,即可獲得圖像的差影。圖像差影可用于動態(tài)監(jiān)測、運動目標的檢測和跟蹤、圖像背景的消除及目標識別等。差影技術(shù)還可以用于消除圖像中不必要的疊加圖像,將混合圖像中重要的信息分離出來。


          接下來使用圖像相減運算實現(xiàn)提取夜視儀閃光故障點,士兵常用夜視設(shè)備在夜間進行偵察瞄準等活動,為避免出現(xiàn)誤判,必須對設(shè)備進行穩(wěn)定性試驗,確保生產(chǎn)設(shè)備的可靠性,即正常工作環(huán)境下,輸出的圖像能在足夠長的時間內(nèi)保持穩(wěn)定,且無黑斑或閃光出現(xiàn)。為了提取閃光點,程序在濾除兩幅圖像中的高頻噪聲后將它們相減。為了便于觀察,程序還使用IMAQ Inverse對計算結(jié)果中的圖像灰度進行了反轉(zhuǎn)。


          程序?qū)崿F(xiàn)如下所示:



          效果如下所示:



          3.3、人體骨骼圖像增強


          圖像的乘法和除法運算可用來擴展或壓縮圖像的灰度級,實現(xiàn)灰度級變換。常見的用法是圖像與一個常數(shù)相乘或相除,以調(diào)整圖像灰度。


          乘法運算也可用來遮住或提取圖像的某些部分,其典型應(yīng)用是通過遮罩提取圖像。提取時,對于需要保留下來的區(qū)域,掩模圖像的值置為1;而在需要被抑制掉的區(qū)域,掩模圖像的值置為0。此外,由于時域的卷積和相關(guān)運算對應(yīng)于頻域的乘積運算,因此乘法運算也被用作一種技巧來實現(xiàn)卷積或相關(guān)處理。


          圖像的除法運算可被看作一幅圖像取反后與另一幅圖像相乘的結(jié)果,它不但可用于改變圖像的灰度級,還能用來檢測圖像間的差別。圖像絕對值運算計算的是兩幅圖像中對應(yīng)像素相減后的絕對值,而除法運算則計算對應(yīng)像素的比率變化,因此也常稱圖像除法為“比率變換”。


          接下來使用乘法運算增強人體骨骼圖像,原圖像中的人體骨骼很難看清,有必要將圖像和一個常量相乘以擴展其灰度級,從而增強圖像的亮度和對比度。


          程序設(shè)計思路如下所示:

          • 程序先為圖像讀取分配了緩沖區(qū)Src,并從文件PET.tif中讀入灰度圖像數(shù)據(jù)。

          • 為了避免乘法運算過程中數(shù)據(jù)溢出,程序?qū)⒆x入的灰度圖像類型從U8轉(zhuǎn)換為I16,并且分配了I16類型的緩沖區(qū)以保存計算結(jié)果。

          • IMAQ Multiply將I16類型的源圖像與常量4相乘,將其灰度級放大4倍。

          • 此后再由IMAQ Cast lmage將計算結(jié)果轉(zhuǎn)換為U8類型并顯示在圖像控件中。

          • 程序結(jié)束前釋放所有分配的緩沖區(qū)。

            由程序運行結(jié)果可以看出,倍乘后的圖像明顯比原圖像易于觀察。


          程序?qū)崿F(xiàn)如下所示:



          效果如下所示:



          往期推薦



          點擊閱讀原文,更精彩~
          瀏覽 108
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩欧美综合视频 | 亚洲无码在线免费观看视频吗? | 美女高潮喷水视频 | 亚洲欧美一区二区三区在线 | 俺去俺来也在线www色官网 |