介绍
图像形态学原理都一样这里介绍Halcon图像处理中关于形态学的介绍,我这里是实验中对亮点的操作,这里说的增加亮点或减少亮点严格的是指值根据应用场景的制定锚点。
在形态学中,不论使灰度图像形态学还是区域形态学,所有的形态学算子运算都是针对于亮点像素(light)的操作,因此,开运算opening、闭运算clsoing、腐蚀erosion、膨胀dilation这四个基本运算都会使亮点像素(light)减少或者增加。所以当一张图片确定了total总像素点,则亮点像素增加,则暗的像素就会减少。目前所学的这四个形态学原理都是需要预先定义一个结果元素,称为:掩模。(矩形,圆..)而后找出结构中心元素,如果得到比较平滑的形状,选择圆形结构元素,否则矩形。
- 膨胀 - dilation可增加light像素,
- 腐蚀 - erosion 可减少light像素,gray_ersion_shape() 灰度图像降低亮度
- 开运算 - opening先腐蚀后膨胀,导致减少light像素 < 腐蚀
- 闭运算- closing 先膨胀后腐蚀,导致增加light像素 < 膨胀
一般需要将彩色图像转换为灰度图像 rgb1_to_gray()算子。才可以使用灰度图像形态学算子,不然只能转换为区域使用区域形态学算子,区域形态学算子不带gray前缀。
灰度图像形态学
*需要定义这个形状才可以使用下面四个算子 gen_rectangle1 (Rectangle3, 30, 20, 100, 200) *需要定义这个形状才可以使用下面四个算子 gen_rectangle2 (Rectangle4, 300, 200, rad(45), 100, 20)
* 需要定义一个形状才可以使用 gray_closing (ImageAffinTrans3, ImageAffinTrans3, ImageClosing2) * 需要定义一个形状才可以使用 gray_opening (ImageAffinTrans3, ImageAffinTrans3, ImageClosing2) * 需要定义一个形状才可以使用 gray_dilation (ImageAffinTrans3, ImageAffinTrans3, ImageDilation) * 需要定义一个形状才可以使用 gray_erosion (ImageAffinTrans3, ImageAffinTrans3, ImageErosion) |
*形态学 用在灰度图像中会使俺的像素减少,亮的像素增加 gray_closing_rect (ImageAffinTrans3, ImageClosing2, 1, 4) *这个算子也使形态学使用在灰度图像中,但是这个算子可以自定义掩模形状 用在灰度图像中会使暗的像素减少,亮的像素增加 gray_closing_shape (ImageClosing2, ImageClosing3, 2, 11, 'rectangle') *形态学 用在灰度图像中会使俺的像素减少,亮的像素增加 gray_dilation_rect (ImageClosing3, ImageMax, 11, 11) *这个算子也使形态学使用在灰度图像中,但是这个算子可以自定义掩模形状 用在灰度图像中会使暗的像素减少,亮的像素增加 gray_dilation_shape (ImageClosing2, ImageClosing3, 2, 11, 'rectangle') |
*这个算子形态学 用在灰度图像中会使暗的像素增加,亮的像素减少 gray_opening_rect (ImageClosing3, ImageOpening, 11, 11) *这个算子也使形态学使用在灰度图像中,但是这个算子可以自定义掩模形状 用在灰度图像中会使暗的像素增加,亮的像素减少 gray_opening_shape (ImageClosing2, ImageClosing3, 2, 11, 'rectangle') *这个算子形态学 用在灰度图像中会使暗的像素增加,亮的像素减少 gray_erosion_rect (ImageClosing3, ImageOpening, 11, 11) *这个算子也使形态学使用在灰度图像中,但是这个算子可以自定义掩模形状 用在灰度图像中会使暗的像素增加,亮的像素减少 gray_erosion_shape (ImageClosing2, ImageClosing3, 2, 11, 'rectangle') |
expand_gray (IntermediateBalls, Bond, Forbidden, RegionExpand, 4, 'image', 6) 根据灰度值填充间隙
区域形态学
和灰度图像形态学类似
腐蚀 erosion1() erosion_circle() erosion_rectangle1() |
膨胀 dilation1() dilation _circle() dilation _rectangle1() |
开运算 opening() opening_circle() opening_rectangle1() |
闭运算 closing() closing_circle() closing_rectangle1() |
其它形态学算法
Top_hat() 俗称顶帽,方法 – 用原图减去开运算后的图,则得到一个边界 内边界
Bottom_hat()俗称底冒, 用闭运算减去原来的区域,则得到一个边界,叫做外边界
Skeleton()将原图变的更精细 将每一个像素腐蚀的只剩下相邻的两个像素相连
Bonudary()