• halcon知识:区域(Region)上的轮廓算子(2)


    一、提要

    区域和轮廓在计算中总是互相交替使用,因此,了解好轮廓,能够更好地解决区域问题。本篇介绍三个获取外轮廓的例子。

    二、凸包络

    2.1 . get_region_convex算子

    功能:查询突起的外表作为轮廓(contour)。

    1. read_image (Image, 'f:/images/DOTS/block.jpg')
    2. rgb1_to_gray(Image,gray)
    3. get_image_size(gray,width,height)
    4. * gen_rectangle1(rect,0,0,height,width)
    5. fast_threshold (gray,regin,0, 50 , 7)
    6. get_region_convex(regin, row, col)
    7. gen_image_const(BlkImage,'byte',width,height)
    8. for I:=0 to |row|-1 by 1
    9. tmpRow :=row[I]
    10. tmpCol :=col[I]
    11. set_grayval(BlkImage, tmpRow, tmpCol, 228)
    12. endfor
    13. dev_display(BlkImage)
    14. disp_polygon(3600, row, col)

    原图:

    显示突出点: 

     将突出点连接的图形为:

    2.2 如何从散列点生成轮廓区域

      

    • gen_region_polygon( : Region : Rows, Columns : )

    通过散列点坐标,生成一个区域,该区域是轮廓条区域。通过该区域,可以生成亚像素轮廓线。如(上图的红色线状区域)。

    • gen_contour_nurbs_xld

            gen_contour_nurbs_xld 生成近似 NURBS 曲线(非均匀有理 B 样条曲线)的 XLD 轮廓。 NURBS 曲线由其度数、控制多边形(通过行和列)、权重向量和节点向量指定。(上图的绿色线状区域)。       

             曲线的度数决定了曲线的可微性等级。曲线位于其控制多边形 (Rows,Cols) 的凸包内。权重中的权重决定了曲线被各个控制点(行、列)吸引的程度。如果选择“自动”,则会生成对所有控制点具有相同权重的权重向量。 Knots 向量描述了曲线的域。通常,此参数可以设置为“自动”。

            生成的 Contour 的精度取决于两个参数 MaxDistance 和 MaxError。 MaxDistance 限制两个后续 Contour 点的最大距离。生成的 Contour 和实际 NURBS 曲线之间的最大距离限制为 MaxError。默认情况下,近似值必须满足这两个约束,但可以将这些参数之一设置为“省略”。选择的 MaxError 和 MaxDistance 越低,曲线的近似值就越好。请注意,所有等高线点都准确地位于曲线上(数值不准确除外)。

  • 相关阅读:
    wordpress博客趣主题个人静态网页模板
    【Git】git多人共享协作添加成员并授权与git拉取或提交冲突解决
    2023二建备考第二天Day02
    fcpx视频编辑处理 Final Cut Pro for Mac
    postgresql之integerset
    D咖饮品机器人惊艳亮相:智能硬件改变生活习惯
    这一篇让你掌握 vue3.2 setup 语法糖
    力扣中等难度题解java(一)
    Python xml.dom.minidom 读取XML元素
    jQuery层次选择器
  • 原文地址:https://blog.csdn.net/gongdiwudu/article/details/125427995