企业网站建设中在方案设计上,深圳宝安区区号,常德建设局网站,做网站公司融资多少前言
目前我遇到的裁剪相关的函数都是以clip打头的函数。一共4个#xff1a;
clip_end_points_contours_xldclip_contours_xldclip_regionclip_region_rel
前面两个是对轮廓的裁剪。 后面是对区域的裁剪。
裁剪轮廓的两端
clip_end_points_contours_xld 用于实现裁剪XLD…前言
目前我遇到的裁剪相关的函数都是以clip打头的函数。一共4个
clip_end_points_contours_xldclip_contours_xldclip_regionclip_region_rel
前面两个是对轮廓的裁剪。 后面是对区域的裁剪。
裁剪轮廓的两端
clip_end_points_contours_xld 用于实现裁剪XLDExtended 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 点集具现化。
get_contour_xld (SelectedContours, Row, Col)
gen_cross_contour_xld (Cross, Row, Col, 1, 0.785398)这里就很容易理解点和像素的关系了 “length” 和 “num_points” 这两种模式也很好理解了 可以看到点是亚像素的他的分布是不均均匀的。也进一步看到轮廓的本质是点集合。
示例
以下是使用 ClipEndPointsContoursXld 的一个简单示例
// 创建输入轮廓
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 裁剪相关算子的总结我们下次见~~~