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