Halcon形態學處理

2022-05-07 22:18:15 字數 2273 閱讀 3574

一般影象處理是針對影象做形狀的改變,而形態處理則是對影象進行結構性的改變,而常見的形態學處理就是針對二值影象(影象中的任何畫素灰度不是0就是255)的膨脹(dilation)、腐蝕(erosion)、開運算(先腐蝕在膨脹)、閉運算(先膨脹再腐蝕)

注意:如果對灰度圖進行膨脹、腐蝕等,會起到增強影象對比度的效果

1.理論:

膨脹(dilation、dilation_rectangle1、dilation_circle)-增加畫素:

把結構元素b的中心元素(origin)掃瞄影象的每乙個畫素,用結構元素與其覆蓋的二值影象做"或"操作 如果都為0

(重合部分畫素值都不同),結果影象的該畫素為0(畫素灰度值0)。否則為1(畫素灰度值255)。

如圖所示:左邊是被處理的影象x(二值影象,我們針對的是黑點),中間是結構元素b。膨脹的方法是,拿b的中心點

和x上的點及x周圍的點乙個乙個對,如果b上有乙個點落在x(影象中所有黑點)的範圍內,則該點(b的中心點所在的位置)

就為黑;右邊是膨脹後的結果。可以看出,它包含x的所有範圍,就像x膨脹一圈

腐蝕(erosion、erosion_rectangle1、erosion_circle)-減少畫素:

把結構元素b的中心元素(origin)掃瞄影象的每乙個畫素,用結構元素與其覆蓋的二值影象做"與"操作 如果都為1(重合部分畫素值都相同),

結果影象的該畫素(中心元素所在位置)為1(畫素灰度值255)。否則為0(畫素灰度值0)。

如圖所示:左邊是被處理的影象x(二值影象,我們針對的是黑點),中間是結構元素b,那個標有origin的點是中心點,即當前處理元素的位置。

腐蝕的方法是,拿b的中心點和x上的點乙個乙個對比,如果b上的所有點都在x的黑點範圍內,則b的中心點保留,否則將該點去掉

膨脹和腐蝕主要用途:

注意:對標準矩形或圓形進行等比例擴大或縮小要用上面的運算元,擴充套件比例為3:1,例:dilation_rectangle1(regiontrans,regiondilation,3,3)

為對標準矩形區域regiontrans的長和寬方向各增加乙個畫素

開運算(opening_rectangle1等)-減少畫素:先進行腐蝕,然後再膨脹

如圖所示:示左邊是被處理的圖象x(二值圖象,我們針對的是黑點),右邊是結構元素b,下面的兩幅圖中左邊是腐蝕後的結果;右邊是在此基礎上膨脹的結果。可以看到,原圖經過開運算後,一些孤立的小點被去掉了。一般來說,開運算能夠去除孤立的小點、毛刺和小橋(即連通兩塊區域的小點),而總的位置和形狀不變。這就是開運算的作用。要注意的是,如果b是非對稱的,進行開運算時要用b的對稱集bv膨脹,否則,開運算的結果和原圖相比要發生平移。

閉運算(closing_rectangle1等)-增加畫素:先進行膨脹,然後進行腐蝕

左邊是被處理的圖象x(二值圖象,我們針對的是黑點),右邊是結構元素b,下面的兩幅圖中左邊是膨脹後的結果,右邊是在此基礎上腐蝕的結果可以看到,原圖經過閉運算後,斷裂的地方被彌合了。一般來說,閉運算能夠填平小湖(即小孔),彌合小裂縫,而總的位置和形狀不變,比如在ocr字元識別、車牌識別等地方,需要對雷射點列印的字型或有一些缺陷的字型進行閉運算,實現連線。

同樣要注意的是,如果b是非對稱的,進行閉運算時要用b的對稱集bv膨脹,否則,閉運算的結果和原圖相比要發生平移。

注意:1)要與原影象的畫素點作比較,新增或去掉的畫素點不算。

2)上面我們介紹的是對二值化影象的處理。如果是對灰度影象進行形態學處理,則膨脹和閉運算會使灰度影象變亮,腐蝕和開運算會使灰度影象變暗,這點大家注意下。

總結: 1)結構元素的形狀(圓形,矩形)一般隨著要處理的區域形狀(圓形、矩形等)的不同而有所不同。比如圓形的結構元素對圓形區域的腐蝕、膨脹效果會更好。

2)結構元素的半徑或邊長越大,則膨脹、腐蝕效果越強。

3)如果想增加畫素,用膨脹或閉運算;如果想減少畫素,用腐蝕或開運算。區別在於膨脹和腐蝕的度要大於閉運算和開運算。

4)形態學對二值化區域是改變形狀,而對灰度影象是改變影象明暗。

5)開運算一般適合去除邊緣毛刺、孔洞等,如果需要對標準圓形或矩形區域四周進行等比例擴大或縮小,可以使用運算元dilation_rectangle1、erosion_rectangle1、dilation_circle、erosion_circle運算元。

halcon形態學操作morphology

功能 建立橢圓形結構元素,用於影象的腐蝕膨脹 2.gray erosion 功能 使用結構元素對影象做腐蝕操作 3.gray dilation 功能 使用結構元素對影象做膨脹操作 4.erosion circle 功能 使用圓形結構元素對區域region做腐蝕操作 5.erosion rectang...

形態學處理

腐蝕,膨脹 效果就是暗的地方侵入亮的地方 使用 給乙個結構元 二維陣列 結構元中有乙個錨點,計算過程就是如果結構元對應的區域有暗的,那錨點就變為暗的 記作 import cv2 as cv import numpy as np s cv.getstructuringelement cv.morph ...

opencv 形態學處理

影象形態學中的幾個基本操作 腐蝕 膨脹 開操作 閉操作。1.1 腐蝕 結構a被結構b腐蝕的定義為,a b a b 可以理解為,移動結構b,如果結構b與結構a的交集完全屬於結構a的區域內,則儲存該位置點,所有滿足條件的點構成結構a被結構b腐蝕的結果。1.2 膨脹 結構a被結構b膨脹的定義為,a b a...