形 态 学 : 膨 胀 、 腐 蚀 、 开 闭 形态学:膨胀、腐蚀、开闭 形态学:膨胀、腐蚀、开闭

1.膨胀

形态学介绍:数学形态学是用集合论方法描述目标集合结构的学科,在集合的基础上通过物体和结构元素的相互作用运算来得到物体本质的形态。

形态学膨胀:为什么叫形态学膨胀呢?是因为图像处理中膨胀是借鉴了形态学的方法。
Halcon形态学:膨胀、腐蚀、开闭_图像处理
膨胀特点:对于填补图像分割后物体的空洞以及区域边界的凹陷区域具有很好的效果。

膨胀分类:根据膨胀结构元的形状,在halcon中分为圆形膨胀以及矩形膨胀等。

dilation_circle()  圆形膨胀
dilation_rectangle1()  矩形膨胀

1.选取图像

dev_open_file_dialog ('read_image', 'default', 'default', Selection)

2.读取图像

read_image (Image, Selection)

3.转灰度图

* 转灰度图
rgb1_to_gray (Image, GrayImage)

4.阈值分割

threshold (GrayImage, Region, 128, 255)

Halcon形态学:膨胀、腐蚀、开闭_灰度图像_02

5.圆形膨胀

* 圆形膨胀
dilation_circle (Region, RegionDilation, 2)

Halcon形态学:膨胀、腐蚀、开闭_灰度图_03

6.矩形膨胀

* 矩形膨胀
dilation_rectangle1 (Region, RegionDilation1, 11, 11)

Halcon形态学:膨胀、腐蚀、开闭_图像分割_04

2.腐蚀

Halcon形态学:膨胀、腐蚀、开闭_灰度图像_05

腐蚀特点:对于去除图像分割后物体的突出区域以及区域边界的凸区域具有很好的效果。
腐蚀分类:根据腐蚀结构元的形状,在halcon,中分为圆形腐蚀以及矩形腐蚀等。

erosion_circle()  圆形腐蚀
erosion_rectangle1()矩形腐蚀

灰度图像的腐蚀:扩大暗色背景,腐蚀亮色区域

gray_erosion_rect() 

灰度图像的膨胀:扩大亮色背景,腐蚀暗色区域

gray_dilation_rect() 

1.

dev_open_file_dialog ('read_image', 'default', 'default', Selection)

2.

read_image (Image, Selection)

3.

* 转灰度图
rgb1_to_gray (Image, GrayImage)

4.

threshold (GrayImage, Region, 128, 255)

5.

* 区域腐蚀
erosion_circle (Region, RegionErosion, 3.5)

6.

7.

8.








erosion_rectangle1 (RegionErosion, RegionErosion1, 11, 11)

gray_erosion_rect (GrayImage, ImageMin, 11, 11)

gray_erosion_shape (GrayImage, ImageMin1, 11, 11, 'octagon')

* 灰度图像膨胀
gray_dilation_rect (GrayImage, ImageMax, 11, 11)
gray_dilation_shape (ImageMax, ImageMax1, 11, 11, 'octagon')

* 边缘
erosion_circle (Region, RegionErosion2, 3.5)
dilation_circle (Region, RegionDilation, 3.5)
difference (RegionDilation, RegionErosion2, RegionDifference)

Halcon形态学:膨胀、腐蚀、开闭_图像处理_06

3.开闭

  • 开运算:对区域先进行腐蚀操作,然后对腐蚀的结果再进行膨胀操作,称为开运算。
  • 开运算特点:具有与腐蚀相似的特点,但是能够防止区域腐蚀过度,能够很好的保持区域的形状。
opening_circle()
opening_rectangle1()
  • 闭运算:对区域先进行膨胀操作,然后对膨胀的结果再进行腐蚀操作,称为闭运算。
  • 闭运算特点:具有与膨胀相似的特点,但是能够防止区域膨胀过度,能够很好的保持区域的形状。
closing_circle()
closing_rectangle1()
  • 灰度图像的开闭运算:

开运算:grav_opening_rect()
闭运算: gray_closing_rect()

dev_open_file_dialog ('read_image', 'default', 'default', Selection)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
read_image (Image, Selection)

* 转灰度图
rgb1_to_gray (Image, GrayImage)
* 图像分割
threshold (GrayImage, Region, 128, 255)
* 开运算
opening_circle (Region, RegionOpening, 3.5)
opening_rectangle1 (Region, RegionOpening1, 10, 10)

* 闭运算
closing_circle (Region, RegionClosing, 3.5)
closing_rectangle1 (Region, RegionClosing1, 10, 10)

* 灰度图像的开闭运算
gray_opening_rect (GrayImage, ImageOpening, 11, 11)
gray_closing_rect (ImageOpening, ImageClosing, 11, 11)

connection (Region, ConnectedRegions)

closing_circle (Region, RegionClosing2, 3.5)

connection (RegionClosing2, ConnectedRegions1)

* 求交集
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
intersection (Rectangle, RegionClosing2, RegionIntersection)
intersection (RegionIntersection, Region, RegionIntersection1)