【halcon】裁剪

前言

目前我遇到的裁剪相关的函数都是以clip打头的函数。一共4个:

  1. clip_end_points_contours_xld
  2. clip_contours_xld
  3. clip_region
  4. clip_region_rel

前面两个是对轮廓的裁剪。

后面是对区域的裁剪。

裁剪轮廓的两端

clip_end_points_contours_xld 用于实现裁剪XLD(Extended Line Description)轮廓的两端

以下是对这个操作符的详细说明:

描述

ClipEndPointsContoursXld 操作符用于裁剪 XLD 轮廓的端点。参数 mode 确定了用于确定裁剪哪部分轮廓的测量方式。

  • 如果 mode = "length",则通过参数 length 传递要裁剪部分的像素点。
  • 如果 mode = "num_points",则通过参数 num_points 传递要裁剪的点数。

裁剪后的轮廓将保存在 clippedContours 中。如果裁剪了输入轮廓的所有点,将不返回任何轮廓。因此,返回的轮廓数少于或等于输入轮廓的数量。

参数

  • contours(输入对象):输入轮廓。
  • clippedContours(输出对象):裁剪后的轮廓。
  • mode(输入控制):裁剪模式。可选值为 "length" 或 "num_points"。
  • length(输入控制):裁剪长度,单位为像素(mode = "length")或点数(mode = "num_points")。

这里唯一不好理解的是轮廓的点数,我如何知道轮廓是由多个少个点构成的

我们可以借助算子 get_contour_xld 获取具体的轮廓点集,然后通过 gen_cross_contour_xld 点集具现化。

bash 复制代码
get_contour_xld (SelectedContours, Row, Col)
gen_cross_contour_xld (Cross, Row, Col, 1, 0.785398)

这里就很容易理解点和像素的关系了, "length" 和 "num_points" 这两种模式也很好理解了!

可以看到点是亚像素的,他的分布是不均均匀的。也进一步看到,轮廓的本质是点集合

示例

以下是使用 ClipEndPointsContoursXld 的一个简单示例:

csharp 复制代码
// 创建输入轮廓
HObject contours;
GenCircleContourXld(out contours, 100, 100, 50, 0, 6.28318, "positive", 1.0);

// 定义裁剪模式和长度
HTuple mode = "length";
HTuple length = 20.0;

// 调用 ClipEndPointsContoursXld 进行裁剪
HObject clippedContours;
HOperatorSet.ClipEndPointsContoursXld(contours, out clippedContours, mode, length);

在这个例子中,输入轮廓是一个圆,裁剪模式为 "length",裁剪长度为 20.0 像素。裁剪后的轮廓将保存在 clippedContours 中。

按矩形区域裁剪轮廓

clip_contours_xld 就看这张图就不用过多的解释了

按矩形区域裁剪区域

clip_region 这个是针对区域的,思路和 clip_contours_xld 一致。

相对区域裁剪

clip_region_rel 这个是针对区域的,和 clip_end_points_contours_xld 思路有些类似。

clip_region_rel (这里的rel 是 relative "相对的" 的缩写),这里也给出一张图。

也就说,可以将现有的区域切割,切割反向可以是上下左右。

这是函数还是挺有用的。

小结

这些是对halcon 裁剪相关算子的总结,我们下次见~~~

相关推荐
栗克1 天前
halcon 透视矩阵
计算机视觉·halcon
一杯解心烦1 天前
Halcon透视矩阵
矩阵·halcon
LeonDL1683 天前
HALCON 深度学习训练 3D 图像的几种方式优缺点
人工智能·python·深度学习·3d·halcon·halcon训练3d图像·深度学习训练3d图像
lingxiao168883 天前
测量3D翼片的距离与角度
计算机视觉·halcon·3d视觉
“抚琴”的人4 天前
【机械视觉】Halcon—【六、交集并集差集和仿射变换】
开发语言·halcon
lingxiao168885 天前
移除3D对象的某些部分点云
计算机视觉·halcon·3d视觉
栗克13 天前
halcon 连接相机
c++·笔记·halcon·相机
lingxiao1688816 天前
相机标定与图像处理涉及的核心坐标系
图像处理·计算机视觉·halcon
Tianwen_Burning1 个月前
cv_area_center()
opencv·halcon
c#上位机1 个月前
halcon关闭图形窗口
halcon