HALCON 算子 之 形态学操作算子

发布于:2024-12-18 ⋅ 阅读:(12) ⋅ 点赞:(0)

什么是形态学操作?

  • 形态学操作,也被称为形态学图像处理或形态学变换,是图像处理领域中的一组非线性操作。这些操作基于图像的几何形状,利用预定义的结构元素(也称为核或探针)对图像进行探测和变换。
  • 形态学操作主要处理二值图像或灰度图像,用于提取图像中的形状特征、去除噪声、分离物体、填充孔洞等。

为什么要形态学操作?

  • 图像预处理
    • 噪声去除:形态学操作,特别是腐蚀和开运算,可以有效地去除图像中的细小噪声点。
    • 背景分割:通过膨胀和闭运算,可以将前景物体与背景更清晰地分离开来。
  • 图像分割
    • 区域分离:利用形态学操作,如腐蚀和膨胀,可以分离出图像中相互接触或重叠的物体。
    • 边缘检测:形态学梯度操作能够突出图像中的边缘特征,从而有助于更精确地分割图像。
  • 特征提取
    • 形状分析:形态学操作可以提取出图像中的形状特征,如物体的尺寸、形状和方向等。
  • 图像增强
    • 对比度增强:通过形态学操作,如顶帽变换和黑帽变换,可以增强图像的对比度,使图像中的细节更加清晰。
    • 填充孔洞:闭运算可以填充图像中的细小孔洞,从而改善图像的完整性。

怎么形态学操作?

腐蚀 —— Erosion

  • 腐蚀操作的主要用途包括消除细小的噪声区域、将连通的区域断开
函数名 说明
erosion1 腐蚀一个区域
erosion _ circle 腐蚀一个圆形结构基础的一个区域
erosion _ rectangle1 腐蚀一个矩形结构基础的一个区域

erosion1

  • 按样品腐蚀一个区域。
  • 函数erosion1(Region,StructElement:RegionErosion: Iterations:)
  • 参数
    • Region :输入需要腐蚀的区域;
    • StructElement :输入腐蚀区域样品(大小) ;
    • RegionErosion:输出腐蚀后的区域;
    • Iterations:输入往外腐蚀的次数, 1≤ Iterations(lin);
  • 效果
    • erosion1 (ConnectedRegions, ConnectedRegions, RegionErosion, 1)

    • 腐蚀前:
      在这里插入图片描述

    • 腐蚀后:
      在这里插入图片描述

erosion_circle:

  • 使用圆形结构元素对区域进行腐蚀。
  • 函数erosion_circle(Region:RegionErosion: Radius:)
  • 参数
    • Region :输入需要腐蚀的区域;
    • RegionErosion :输出腐蚀后的区域;
    • Radius :输入圆形结构基础的半径;
  • 效果
    • erosion_circle (ConnectedRegions, RegionErosion, 3.5)

    • 腐蚀前:
      在这里插入图片描述

    • 腐蚀后
      在这里插入图片描述

erosion_rectangle1:

  • 使用矩形结构元素对区域进行腐蚀。
  • 函数erosion_rectangle1(Region:RegionErosion: Width, Height:)
  • 参数
    • Region :输入需要腐蚀的区域;
    • RegionErosion :输出腐蚀后的区域;
    • Width:输入腐蚀矩形宽度;
    • Height :输入腐蚀矩形高度;

膨胀 —— Dilation

  • 膨胀操作会增加图像中前景物体的边界,通常用于扩大物体、连接相邻的物体或填补物体内部的细小孔洞
函数名 说明
dilation1 扩大一个区域
dilation _ circle 扩大一个圆形结构基础的一个区域
dilation _rectangle1 扩大一个矩形结构基础的一个区域

dilation1

  • 扩大一个区域
  • 函数dilation_circle(Region:RegionDilation: Radius:)
  • 参数
    • Region:输入需要扩大的区域;
    • StructElement:输入扩充区域样品(大小) ;
    • RegionDilation :输出扩充后的区域;
    • Iterations: 输入往外扩充的次数, 1 ≤ Iterations(lin);
  • 效果
    • dilation1 (SelectedRegions, ConnectedRegions, RegionDilation, 1)
    • 膨胀前:
      在这里插入图片描述
    • 膨胀后:
      在这里插入图片描述

dilation_circle

  • 扩大一个圆形结构基础的一个区域
  • 函数dilation_circle(Region:RegionDilation: Radius:)
  • 参数
    • Region:输入需要扩充的区域;
    • RegionDjlation :输出扩充后的区域;
    • Radius:输入圆形结构基础的半径;

dilation_rectangle1

  • 扩大一个矩形结构基础的一个区域
  • 函数dilation_rectangle1(Region:RegionDilation: Width, Height:)
  • 参数
    • Region:输入需要扩充的区域;
    • RegionDilation :输出扩充后的区域;
    • Width:输入扩充矩形宽度;
    • Height:输入扩充矩形高度;

打开 —— Opening

  • 开运算是先腐蚀后膨胀的操作,它有助于去除小的物体、在物体间分离细小的连接以及在保持物体大小不变的情况下平滑物体的边界
函数名 说明
opening 打开一个被提取了成分的区域
opening _ circle 打开一个圆形结构基础的一个区域
opening _ rectangle1 打开一个矩形结构基础的一个区域

opening

  • 打开一个被提取了成分的区域
  • 函数 opening(Region, StructElement:RegionOpening::)
  • 参数
    • Region:输入一个需要被提取圆形成分的区域;
    • StructElement :输入成分区域;
    • RegionOpening : 输出被提取了成分该区域;

opening_circle

  • 打开一个圆形结构基础的一个区域;
  • 函数opening_circle(Region:RegionOpening: Radius:)
  • 参数
    • Region:输入一个需要被提取圆形成分的区域;
    • RegionOpening:输出被提取圆形成分的区域;
    • Radius:输入圆形成分的半径;

opening_rectangle1

  • 打开一个矩形结构基础的一个区域;

  • 函数opening_rectangle1(Region:RegionOpening: Width, Height:)

  • 参数

    • Region:输入一个需要被提取矩形成分的区域;
    • RegionOpening :输出一个提取了矩形成分的区域;
    • Width: 输入矩形成分的宽度;
    • Height:输入矩形成分的高度;
  • 效果

    • opening_rectangle1 (SelectedRegions, RegionOpening, 1, 10)
    • 开运算前图像:
      在这里插入图片描述
    • 开运算后图像:
      在这里插入图片描述

关闭 —— Closing

  • 闭运算是先膨胀后腐蚀的操作。它使用指定的结构元素对图像进行膨胀处理,以填补物体内部的细小空洞连接邻近的物体,然后再进行腐蚀处理,以恢复目标区域的边界形态。
函数名 说明
closing 关闭一个成分区域结构的修正区域
closing_circle 关闭一个圆形结构基础的修正区域
closing_rectangle1 关闭一个矩形结构基础的修正区域

closing

  • 关闭一个成分区域结构的修正区域;
  • 函数 closing(Region, StructElement:RegionClosing::)
  • 参数
    • Region:输入需要关闭其中部分(区域)的区域
    • StructElement:输入需要关闭的成分区域;
    • Structuring element:输出修正后的区域;

closing_circle

  • 关闭一个圆形结构基础的修正区域;
  • 函数closing_circle(Region:RegionClosing: Radius:)
  • 参数
    • Region:输入要被关闭的区域;
    • RegionClosing :输出关闭后的区域;
    • Radius:输入(需要关闭小于该)圆形基础的半径;

closing_rectangle1

  • 关闭一个矩形结构基础的修正区域;
  • 函数closing_rectangle1(Region:RegionClosing: Width, Height:)
  • 参数
    • Region:输入需要关闭的区域;
    • RegionClosing :输出关闭后的区域;
    • Width:输入(需要关闭小于该)矩形的宽度;
    • Height:输入(需要关闭小于该)矩形的高度;