1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        機(jī)器視覺檢測中的圖像預(yù)處理方法

        共 6599字,需瀏覽 14分鐘

         ·

        2021-12-01 13:49


        點(diǎn)擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

        重磅干貨,第一時間送達(dá)

        本文以Dalsa sherlock軟件為例,一起來了解一下視覺檢測中平滑模糊的圖像處理方法。

        1.觀察灰度分布來描述一幅圖像稱為空間域,觀察圖像變化的頻率被稱為頻域。?

        2.頻域分析:低頻對應(yīng)區(qū)域的圖像強(qiáng)度變化緩慢,高頻對應(yīng)的變化快。低通濾波器去除了圖像的高頻部分,高通濾波器去除了圖像的低頻部分

        平滑模糊處理(低通)

        高斯濾波,中值濾波,均值濾波都屬于低通濾波

        一副圖像的邊緣、跳躍部分以及顆粒噪聲代表圖像信號的高頻分量

        而大面積的背景區(qū)則代表圖像信號的低頻信號

        用濾波的方式濾除其高頻部分就能去掉噪聲。

        ?在Sherlock中,采用低通處理來平滑圖像的算法包括:Lowpass,Lowpass5X5,Gaussian ,Gaussian5X5,GaussianWXH,Median,Smooth


        ?低通濾波Lowpass ??? Lowpass5X5

        在Sherlock中的這兩個算法,直接理解為低通濾波,根據(jù)文檔中的描述,這兩個算法分別是對3x3和5x5大小尺寸內(nèi)進(jìn)行均值平滑圖像,可重復(fù)多次執(zhí)行,未能理解與smooth算法的區(qū)別


        (1)均值濾波:Smooth

        ??????????均值濾波最簡單的低通濾波,根據(jù)設(shè)定的尺寸,將相鄰像素取平均值,Sherlock中使用的是3x3大小的尺寸,每個點(diǎn)的像素值由其原像素值和其周圍的8個像素值的平均值取代。

        例如下圖,在3x3大小的過濾尺寸內(nèi),中心點(diǎn)原來的像素值為1,相鄰像素取平均值為2,則經(jīng)過均值濾波處理過,中心點(diǎn)的像素為2

        (2)中值濾波:Median

        ???????根據(jù)設(shè)定的尺寸,將區(qū)域內(nèi)的像素進(jìn)行排序,中心點(diǎn)的像素值由過濾尺寸內(nèi)的位于中間的像素值取代

        ???????中值濾波對于去除小的噪點(diǎn)或

        者脈沖噪聲效果非常好

        ???????中值濾波會改變圖像的結(jié)構(gòu),

        圖像的強(qiáng)度被改變

        (3)高斯濾波:Gaussian ??Gaussian5X5 ?GaussianWXH

        高斯濾波就是對整幅圖像進(jìn)行加權(quán)平均的過程,每一個像素點(diǎn)的值,都由其本身和鄰域內(nèi)的其他像素值經(jīng)過加權(quán)平均后得到,模糊了圖像的細(xì)節(jié)。常用于出去噪點(diǎn),平滑邊緣。

        高斯濾波的具體操作是:用一個模板(或稱卷積、掩模)掃描圖像中的每一個像素,用模板確定的鄰域內(nèi)像素的加權(quán)平均灰度值去替代模板中心像素點(diǎn)的值。

        Gaussian:

        使用一個3X3大小,濾波器系數(shù)是一個標(biāo)準(zhǔn)差為0.85的二維高斯分布,可多次執(zhí)行

        Gaussian5X5:

        使用一個5X5大小,濾波器系數(shù)是一個標(biāo)準(zhǔn)差為1的二維高斯分布,可多次執(zhí)行,但是增加執(zhí)行次數(shù)會增大標(biāo)準(zhǔn)差的值,近似于重復(fù)次數(shù)的平方根

        注意:每次重復(fù)使用之后,都會圖像的邊界留出2個像素保持像素不變,如果對圖像邊界有影響,注意設(shè)定邊界的灰度值

        GaussianWXH:

        使用一個可以設(shè)定尺寸大小,確定權(quán)重的標(biāo)準(zhǔn)差也可以設(shè)定

        一個大的高斯過濾器可以用重復(fù)多次的小的高斯來實現(xiàn)

        例如重復(fù)執(zhí)行一個3x3或者5x5高斯,執(zhí)行次數(shù)N*1.4或者N*2.8為過濾的尺寸,例如3x3執(zhí)行9次,過濾的尺寸大約是9*1.4,與一個13X13高斯差不多

        標(biāo)準(zhǔn)差σ

        Sigma 越大,分布越均勻,周圍的權(quán)重越大,模糊程度越大

        Sigma越小,分布越集中,靠近中心的權(quán)重越大,模糊程度越小



        ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????? ? 均值????????????????????????? ? ? ? ? ? 高斯


        【銳化 強(qiáng)化處理】


        圖像的銳化處理,使圖像邊緣更清晰,細(xì)節(jié)增強(qiáng)

        Sherlock中用于銳化圖像的算法有各種卷積:1X3,1X5,1X7,3X3,5X1,5X5,7X1,Chatter Edge,Gradient,Highpass ,Sharpen

        ◆?1X3,1X5,1X7,3X3,5X1,5X5,7X1

        分別是選擇不同尺寸的卷積核,每個位置的像素與相鄰像素通過設(shè)定的卷積核進(jìn)行卷積運(yùn)算。

        假如目標(biāo)像素點(diǎn)和它周邊的值(上下左右前后的臨點(diǎn),具體的比鄰范圍依賴于算子的大小,3*3的算子比鄰范圍為1,5*5的為2,以此類推)得有較大差異,那么就可以通過這個算子對原圖矩陣中的這個位置進(jìn)行卷積運(yùn)算,得出的值和該像素點(diǎn)原來的灰度值會產(chǎn)生顯著的差異。當(dāng)這種前后差異超過我們預(yù)設(shè)的范圍后,就將這個像素點(diǎn)標(biāo)記為255(白色),其余點(diǎn)標(biāo)記為0(黑色),這樣就得到了一黑色為背景,白色線條作為邊緣或形狀的邊緣提取效果圖。銳化算子:通過卷積運(yùn)算,可以增大矩陣每一個元素與周邊元素的方差,輕則起到銳化作用,重則成了邊緣提取。反之,則是去噪過程。


        上圖為算法的參數(shù)就是設(shè)置卷積核的參數(shù)

        ◆?Chatter Edge

        用于對噪音的或者模糊的邊緣的提取,過濾尺寸可以自定義。輸出的是二值化的或者修剪灰度比例的圖像。由于機(jī)械振動引起的圖像跳動,如下圖:

        使用一個可以調(diào)整過濾內(nèi)核尺寸的差分過濾器,例如過濾尺寸為4的內(nèi)核為{-1,0,0,1}或者過濾尺寸為6的內(nèi)核為{-1,0,0,0,0,1}。這個過濾器在水平方向,垂直方向或者兩者都有的方向掃描輸入圖像,得到輸出圖像。

        應(yīng)用一個過濾尺寸為16的,“X”方向過濾的過濾器,增強(qiáng)圖中對比度比較低的邊緣。


        任何輸出低于邊緣閾值的值設(shè)定為0.等于或者大于邊緣閾值的值輸出為全白,如果keep gray above設(shè)為True,保留原來的值,

        Filter size (卷積內(nèi)核尺寸)可以設(shè)為2-255,由于卷積是線形操作,我們可以把這個差分過濾分成兩個矩形(取樣積分器)過濾器。一個過濾器相對于另一個過濾器偏移一個像素。一個矩形過濾器是低通濾波器,用來去除噪音。-1,….,1這些是用來增強(qiáng)邊緣的。

        Filter direction 設(shè)定過濾器的方向?!癤”表示過濾器是水平的,“Y”表示過濾器是垂直的,這兩個都會使過濾器掃描穿過輸入圖像,得到輸出圖像。如果是“either”,兩個方向的過濾都應(yīng)用。如果keep gray above設(shè)為false, X和Y的過濾結(jié)果通過邏輯OR合并處理。如果keep gray above設(shè)為true,輸出是X和Y方向的最大值。

        Transition type 設(shè)定邊緣對比度變化?!癉ark-to-light” 放大由暗到亮的邊緣,“l(fā)ight-to-dark”放大由亮到暗的邊緣?!癳ither”兩種對比度變化都被放大。

        下側(cè)的圖像顯示了一個非常緩慢和擴(kuò)散過渡的邊緣,右側(cè)的圖像顯示了應(yīng)用了一個過濾尺寸為10的chatter edges結(jié)果的圖像。

        Gradient 梯度銳化,線性ROI使用的

        根據(jù)由距離分開的像素,使用線性梯度增強(qiáng)邊緣

        output = abs[ (n - separation/2) - (n + separation/2) ]

        Highpass ?Highpass5x5 高通濾波

        Sharpen

        在圖像增強(qiáng)過程中,通常利用各類圖像平滑算法消除噪聲。一般來說,圖像的能量主要集中在其低頻部分,噪聲所在的頻段主要在高頻段,同時圖像邊緣信息也主要集中在其高頻部分。這將導(dǎo)致原始圖像在平滑處理之后,圖像邊緣和圖像輪廓模糊的情況出現(xiàn)(平滑可以認(rèn)為是去除噪聲,這樣也就模糊了圖像的邊緣信息)。為了減少這類不利效果的影響,就需要利用圖像銳化技術(shù),使圖像的邊緣變得清晰。圖像銳化處理的目的是為了使圖像的邊緣、輪廓線以及圖像的細(xì)節(jié)變得清晰,經(jīng)過平滑的圖像變得模糊的根本原因是因為圖像受到了平均或積分運(yùn)算,因此可以對其進(jìn)行逆運(yùn)算(如微分運(yùn)算)就可以使圖像變得清晰。微分運(yùn)算是求信號的變化率,由傅立葉變換的微分性質(zhì)可知,微分運(yùn)算具有較強(qiáng)高頻分量作用。從頻率域來考慮,圖像模糊的實質(zhì)是因為其高頻分量被衰減,因此可以用高通濾波器來使圖像清晰。但要注意能夠進(jìn)行銳化處理的圖像必須有較高的性噪比,否則銳化后圖像性噪比反而更低,從而使得噪聲增加的比信號還要多,因此一般是先去除或減輕噪聲后再進(jìn)行銳化處理.


        【邊緣檢測】


        邊緣檢測的一般步驟:

        1.濾波:邊緣檢測算法主要是基于圖像強(qiáng)度的一階和二階導(dǎo)數(shù),但導(dǎo)數(shù)的計算對噪聲很敏感,因此必須使用濾波器來改善與噪聲有關(guān)的邊緣檢測器的性能。需要指出,大多數(shù)濾波器在降低噪聲的同時也導(dǎo)致了邊緣強(qiáng)度的損失,因此,增強(qiáng)邊緣和降低噪聲之間需要折中。

        2.增強(qiáng):增強(qiáng)邊緣的基礎(chǔ)是確定圖像各點(diǎn)鄰域強(qiáng)度的變化值。增強(qiáng)算法可以將鄰域(或局部)強(qiáng)度值有顯著變化的點(diǎn)突顯出來。邊緣增強(qiáng)一般是通過計算梯度幅值來完成的。

        3.檢測:在圖像中有許多點(diǎn)的梯度幅值比較大,而這些點(diǎn)在特定的應(yīng)用領(lǐng)域中并不都是邊緣,所以應(yīng)該用某種方法來確定哪些點(diǎn)是邊緣點(diǎn)。最簡單的邊緣檢測判據(jù)是梯度幅值閾值判據(jù)。

        4.定位:如果某一應(yīng)用場合要求確定邊緣位置,則邊緣的位置可在子像素分辨率上來估計,邊緣的方位也可以被估計出來。在邊緣檢測算法中,前三個步驟用得十分普遍。這是因為大多數(shù)場合下,僅僅需要邊緣檢測器指出邊緣出現(xiàn)在圖像某一像素點(diǎn)的附近,而沒有必要指出邊緣的精確位置或方向。

        Sherlock中用于邊緣檢測的算法有:Canny,Compass,F(xiàn)irst Diff, Kirsch,Laplace,LineEnhance,Prewitt,Roberts,Second Diff ,Sobel

        Sobel

        由于Sobel 算子結(jié)合了 Gaussian 平滑和微分,所以,其結(jié)果或多或少對噪聲有一定的魯棒性。

        主要的方法就是將圖像的每一個點(diǎn)都用sobel算子做卷積:一個用來檢測垂直邊緣,一個用來檢測水平邊緣,而最后兩個卷積的最大值將作為該點(diǎn)的輸出,即檢測后的灰度。

        Sobel算子:

        可以看到sobel算子包括兩組3*3的矩陣,左邊的表示垂直,右邊的表示水平。將它與圖像作平面卷積,即可分別得出垂直及水平的亮度差分近似值。

        Sobel算子根據(jù)像素點(diǎn)上下、左右鄰點(diǎn)灰度加權(quán)差,在邊緣處達(dá)到極值這一現(xiàn)象檢測邊緣。對噪聲具有平滑作用,提供較為精確的邊緣方向信息,邊緣定位精度不夠高。當(dāng)對精度要求不是很高時,是一種較為常用的邊緣檢測方法。

        Canny

        三級操作檢測所有方向的邊緣.用一個SobelXY探測器查找邊緣梯度,垂直于邊緣輪廓的點(diǎn)被拒絕 ,最后應(yīng)用邊緣滯后閾值法。即一個高閾值和一個低閾值來區(qū)分邊緣像素。如果邊緣像素點(diǎn)梯度值大于高閾值,則被認(rèn)為是強(qiáng)邊緣點(diǎn)。如果邊緣梯度值小于高閾值,大于低閾值,則標(biāo)記為弱邊緣點(diǎn)。小于低閾值的點(diǎn)則被抑制掉

        強(qiáng)邊緣點(diǎn)可以認(rèn)為是真的邊緣。弱邊緣點(diǎn)則可能是真的邊緣,也可能是噪聲或顏色變化引起的。為得到精確的結(jié)果,后者引起的弱邊緣點(diǎn)應(yīng)該去掉。通常認(rèn)為真實邊緣引起的弱邊緣點(diǎn)和強(qiáng)邊緣點(diǎn)是連通的,而又噪聲引起的弱邊緣點(diǎn)則不會。所謂的滯后邊界跟蹤算法檢查一個弱邊緣點(diǎn)的8連通領(lǐng)域像素,只要有強(qiáng)邊緣點(diǎn)存在,那么這個弱邊緣點(diǎn)被認(rèn)為是真是邊緣保留下來。

        Canny 推薦的?高:低?閾值比在 2:1 到3:1之間。

        Canny檢測邊緣步驟舉例:

        1.消除噪聲。?使用高斯平滑濾波器卷積降噪。??例如下面的5x5高斯內(nèi)核

        2.計算梯度幅值和方向。?此處,按照Sobel濾波器的步驟:

        A.運(yùn)用一對卷積陣列 (分別作用于?x?和y方向):

        B.使用下列公式計算梯度幅值和方向:

        梯度方向近似到四個可能角度之一(一般 0, 45, 90, 135)

        3.非極大值?抑制。這一步排除非邊緣像素, 僅僅保留了一些細(xì)線條(候選邊緣)。

        4.滯后閾值: 最后一步,Canny 使用了滯后閾值,滯后閾值需要兩個閾值(高閾值和低閾值):

        A.如果某一像素位置的幅值超過?高?閾值, 該像素被保留為邊緣像素。

        B.如果某一像素位置的幅值小于?低?閾值, 該像素被排除。

        C.如果某一像素位置的幅值在兩個閾值之間,該像素僅僅在連接到一個高于?高?閾值的像素時被保留。

        Laplace,Laplace5x5,拉普拉斯邊緣探測器,分別使用3x3和5x5大小尺寸過濾,屬于高通過濾 ?二階微分

        拉普拉斯銳化圖像是根據(jù)圖像某個像素的周圍像素到此像素的突變程度有關(guān)。

        從兩種模板中就可以看出,如果一個黑色平面中有一個白點(diǎn),那么模板矩陣可以使這個白點(diǎn)更亮。由于圖像邊緣就是灰度發(fā)生跳變的區(qū)域,所以拉普拉斯模板對邊緣檢測很有用。

        一個函數(shù)的一階微分描述了函數(shù)圖像是朝哪里變化的,即增長或者降低;而二階微分描述的則是圖像變化的速度,急劇增長下降還是平緩的增長下降。那么據(jù)此我們可以猜測出依據(jù)二階微分能夠找到圖像的色素的過渡程度,例如白色到黑色的過渡就是比較急劇的。? ? ?

        或者說:當(dāng)鄰域中心像素灰度低于它所在的領(lǐng)域內(nèi)其它像素的平均灰度時,此中心像素的灰度應(yīng)被進(jìn)一步降低,當(dāng)鄰域中心像素灰度高于它所在的鄰域內(nèi)其它像素的平均灰度時,此中心像素的灰度應(yīng)被進(jìn)一步提高,以此實現(xiàn)圖像的銳化處理。

        Compass

        方向性的邊緣過濾器,增強(qiáng)與選定方向垂直的邊緣。平行于方向的邊緣設(shè)為0

        執(zhí)行一階微分過濾

        First Diff X??快速強(qiáng)化垂直方向的邊緣

        ??????該點(diǎn)的像由其本身與其右側(cè)像素的差的絕對值決定

        First Diff Y??快速強(qiáng)化垂直方向的邊緣

        ??????該點(diǎn)的像由其本身與其下方像素的差的絕對值決定

        First Diff XY快速強(qiáng)化任意方向的邊緣

        ???????該點(diǎn)的像由X和Y方向的差值的和決定

        Second Diff X, Second Diff Y, Second Diff XY,

        與上面的算法相同,只是像素由左右(或者上下)兩側(cè)像素分別與中心點(diǎn)像素差的和決定, output = abs(west - 2*center + east),output = abs(north - 2*center + south)

        ??output = abs(west - 2*center + east) + abs(north - 2*center + south)

        Kirsch,根據(jù)選擇的方向,使用3x3卷積增強(qiáng)由暗到亮的變化

        LineEnhance,有方向性邊緣探測器,垂直于指定方向的邊緣或者線條會被強(qiáng)化

        ??????使用二階微分查找圖像的變化梯度,屬于邊緣的部分灰度值由其中最大的灰度值替代,不屬于邊緣的部分將設(shè)為0

        PrewittX,PrewittY,PrewittXY,分別是使用3x3大小的過濾器,增強(qiáng)水平,垂直,任意方向的邊緣。PrewittX和PrewittY分別是保留水平方向和垂直方向為正向的邊緣,負(fù)向的將為0,對噪聲不敏感

        Roberts,邊緣算子采用的是對角方向相鄰的兩個像素之差,從圖像處理的實際效果來看,邊緣定位準(zhǔn),對噪聲敏感。是一種利用局部查分算子尋找邊緣的算子



        下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
        在「小白學(xué)視覺」公眾號后臺回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

        下載2:Python視覺實戰(zhàn)項目52講
        小白學(xué)視覺公眾號后臺回復(fù):Python視覺實戰(zhàn)項目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學(xué)校計算機(jī)視覺。

        下載3:OpenCV實戰(zhàn)項目20講
        小白學(xué)視覺公眾號后臺回復(fù):OpenCV實戰(zhàn)項目20講,即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

        交流群


        歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


        瀏覽 68
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            成人另类小说 | 男人的天堂视频网站 | 免费 成人 美女女 | 青草大香蕉 | 东北少妇bbbb搡bbb搡 | 日韩无码精品电影 | 精品久久无码 | 日本做受高潮又黄又爽 | 强行扒开双腿猛烈进入免费 | 国产精品熟女一区二区不卡 |