Halcon 第三章『Morphology形态学』◆第1节:腐蚀与膨胀
????????腐蝕與膨脹:通過腐蝕與膨脹操作對二值圖像區域進行“收縮”或“擴張”。
? ? ? ? 結構元素
????????結構元素一般由0和1的二值像素組成。結構元素的原點相當于“小窗”的中心,其尺寸大小具體由算子指定,結構元素的尺寸也決定著腐蝕或者膨脹的程度。結構元素的形狀可以說圓形、矩形、橢圓形,甚至也可以是指定的多邊形狀。
? ? ? ? 二值圖像
????????二值圖像:僅有“0" "1”兩個像素值的圖像
? ? ? ? 腐蝕
? ? ? ? 腐蝕操作是對所選區域進行“收縮”的一種操作,可以用于消除邊緣和雜點。腐蝕區域的大小與結構元素的大小和形狀有關。
? ? ? ? 原理:使用一個結構元素(如矩形、圓形或自定義多邊形),用其原點在二值圖像上逐個進行移動,每移動一個位置,判斷對應位置是否與結構元素完全相同,如果相同,則將結構元素的原點位置對應的二值圖像位置的值賦值為“1”,否則,原點對應的原二值圖像位置賦值為“0”(這里的結構元素都是奇數,因為要取其原點,然后對原點周邊的像素進行減法)。
? ? ? ? 經過腐蝕操作,圖像區域的邊緣可能會變得平滑,區域的像素將會減少,相連的部分可能會斷開,但是各部分仍然屬于同一個區域。
? ? ? ? 腐蝕相關的算子有:? ? ? ?
| ????????Morphology / Region ????????使用圓形結構元素進行腐蝕操作 erosion_circle(Region : RegionErosion : Radius : ) ????????Region:輸入參數,輸入圖像中的區域。 ????????RegionErosion:輸出參數,輸出腐蝕后的區域。 ????????Radius:輸入參數,為圓形結構元素的半徑。默認3.5,值的范圍0.5 ≤ Radius ≤ 511.5 (lin)。 備注:圓形的直徑去奇數是因為圓形是對稱圖形,著這樣是為了使圓形的中心點左邊為整數。 |
| ????????Morphology / Region ????????使用矩形結構元素進行腐蝕操作 erosion_rectangle1(Region : RegionErosion : Width, Height : ) |
| ????????Morphology / Region ????????用一個自定義的結構元素對輸入區域進行腐蝕操作 erosion1(Region, StructElement : RegionErosion : Iterations : ) |
| ????????Morphology / Region ????????使用一個參考點對輸入區域進行腐蝕操作 erosion2(Region, StructElement : RegionErosion : Row, Column, Iterations : ) |
| ????????Legacy / Morphology(舊版本) ????????使用的結構元素來自格雷字母表,通過定義結構元素對輸入區域進行腐蝕操作 erosion_golay(Region : RegionErosion : GolayElement, Iterations, Rotation : ) |
| ????????Legacy / Morphology(舊版本) ????????與erosion_golay類似,使用格雷字母表中的元素對輸入區域進行連續的腐蝕操作 erosion_seq(Region : RegionErosion : GolayElement, Iterations : ) |
? ? ? ? ?膨脹
? ? ? ? 與腐蝕相反,膨脹是對選區進行“擴大”的一種操作。
? ? ? ? 原理:使用一個結構元素(如矩形、圓形或自定義多邊形),用其原點在二值圖像上逐個進行移動,每移動一個位置,判斷映射后的結構元素與所覆蓋的二值圖像是否有重疊部分,如果存在重疊部分,則結構元素原點對應的二值圖像位置賦值為“1”。否則,二值圖像不進行任何改變。
????????(換一種理解腐蝕:可以用原點逐個放在有1的位置,然后此1周圍變成和結構元素相同的1,其結果與本質理解相同)
? ? ? ? 經過膨脹操作,圖像區域的邊緣可能會變得平滑,區域的像素將會增加,不相連的部分可能會連接起來,這些都與腐蝕操作正好相反。即使如此,原本不相連的區域仍然屬于各自區域,不會因為像素重疊就發生合并。
????????備注:膨脹后發生的重疊的區域可以用opening_seq算子分離開來。? ? ? ?
? ? ? ? 膨脹相關的算子有:? ?
| ????????Morphology / Region ????????使用圓形結構元素進行膨脹操作。 dilation_circle(Region : RegionDilation : Radius : ) |
| ????????Morphology / Region ????????使用矩形結構元素進行膨脹操作。 dilation_rectangle1(Region : RegionDilation : Width, Height : ) |
| ????????Morphology / Region ????????用一個自定義的結構元素對輸入區域進行膨脹操作。 dilation1(Region, StructElement : RegionDilation : Iterations : ) |
| ????????Morphology / Region ????????使用一個參考點對輸入區域進行膨脹操作。 dilation2(Region, StructElement : RegionDilation : Row, Column, Iterations : ) |
| ????????Legacy / Morphology(舊版本) ????????使用的結構元素來自格雷字母表,通過定義結構元素對輸入區域進行膨脹操作。 dilation_golay(Region : RegionDilation : GolayElement, Iterations, Rotation : ) |
| ????????Legacy / Morphology(舊版本) ????????與dilation_golay類似,使用格雷字母表中的元素對輸入區域進行連續的膨脹操作。 dilation_seq(Region : RegionDilation : GolayElement, Iterations : ) |
????????參考文獻:《Halcon機器視覺算法原理與編程實戰》楊青
總結
以上是生活随笔為你收集整理的Halcon 第三章『Morphology形态学』◆第1节:腐蚀与膨胀的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Q键连发。按住Q键则连发。松开则停止1。
- 下一篇: 火遍全网的新一代AI聊天机器人chatG