[Halcon] [ImageProcess] Dilation / Erosion 膨脹與侵蝕
Dilation / Erosion 在我目前實作中,滿常使用到的。
因為取得的區域,並不是每塊區域都是完美無瑕,所以需要Dilation / Erosion的方式來做校正。
Dilation (膨脹): 可以用來讓區域邊緣變得較平滑,可濾掉較小的凹區域。因為區域膨脹的關係,整體的區域會變大。
dilation1(Region, StructElement : RegionDilation : Iterations : )
dilation_circle(Region : RegionDilation : Radius : )
dilation_rectangle1(Region : RegionDilation : Width, Height : )
上頭一些函式,主要是輸入圓半徑做膨脹、利用輸入方形長寬做膨脹、利用另一個區域來做膨脹等...
Erosion (侵蝕): 可以用來讓區域邊緣變得較平滑,可濾掉較小的凸區域。因為區域侵蝕的關係,整體的區域會變小。有時可能會將區域切割成許多小區域。
erosion1(Region, StructElement : RegionErosion : Iterations : )
erosion_circle(Region : RegionErosion : Radius : )
erosion_rectangle1(Region : RegionErosion : Width, Height : )
上頭一些函式,主要是輸入圓半徑做侵蝕、利用輸入方形長寬做侵蝕、利用另一個區域來做侵蝕等...
另外也有函式是將這兩種觀念組合起來應用:
Opening : 先侵蝕、後膨脹
opening(Region, StructElement : RegionOpening : : )
opening_circle(Region : RegionOpening : Radius : )
opening_rectangle1(Region : RegionOpening : Width, Height : )
ex: opening_circle(Region : RegionOpening : Radius : ) = erosion_circle -> dilation_circle
Closing : 先膨脹、後侵蝕
closing(Region, StructElement : RegionClosing : : )
closing_circle(Region : RegionClosing : Radius : )
closing_rectangle1(Region : RegionClosing : Width, Height : )
ex: closing_rectangle1(Region : RegionClosing : Width, Height : ) = dilation_rectangle1 -> erosion_rectangle1
上述方法都可以讓區域邊緣變得較平滑,端看自己需要什麼樣的結果再作調整即可。
因為取得的區域,並不是每塊區域都是完美無瑕,所以需要Dilation / Erosion的方式來做校正。
Dilation (膨脹): 可以用來讓區域邊緣變得較平滑,可濾掉較小的凹區域。因為區域膨脹的關係,整體的區域會變大。
dilation1(Region, StructElement : RegionDilation : Iterations : )
dilation_circle(Region : RegionDilation : Radius : )
dilation_rectangle1(Region : RegionDilation : Width, Height : )
上頭一些函式,主要是輸入圓半徑做膨脹、利用輸入方形長寬做膨脹、利用另一個區域來做膨脹等...
Erosion (侵蝕): 可以用來讓區域邊緣變得較平滑,可濾掉較小的凸區域。因為區域侵蝕的關係,整體的區域會變小。有時可能會將區域切割成許多小區域。
erosion1(Region, StructElement : RegionErosion : Iterations : )
erosion_circle(Region : RegionErosion : Radius : )
erosion_rectangle1(Region : RegionErosion : Width, Height : )
上頭一些函式,主要是輸入圓半徑做侵蝕、利用輸入方形長寬做侵蝕、利用另一個區域來做侵蝕等...
另外也有函式是將這兩種觀念組合起來應用:
Opening : 先侵蝕、後膨脹
opening(Region, StructElement : RegionOpening : : )
opening_circle(Region : RegionOpening : Radius : )
opening_rectangle1(Region : RegionOpening : Width, Height : )
ex: opening_circle(Region : RegionOpening : Radius : ) = erosion_circle -> dilation_circle
Closing : 先膨脹、後侵蝕
closing(Region, StructElement : RegionClosing : : )
closing_circle(Region : RegionClosing : Radius : )
closing_rectangle1(Region : RegionClosing : Width, Height : )
ex: closing_rectangle1(Region : RegionClosing : Width, Height : ) = dilation_rectangle1 -> erosion_rectangle1
上述方法都可以讓區域邊緣變得較平滑,端看自己需要什麼樣的結果再作調整即可。