QQ登录

只需一步,快速开始

halcon area_center_points_xld函数介绍

[ 复制链接 ]
area_center_points_xld(XLD : : : Area, Row, Column)
轮廓线和多边形的面积和重心(质心)作为点云处理。

area_center_points_xld计算由轮廓或多边形XLD(即,不考虑轮廓或多边形中点的顺序)。
面积对应于点云中的点个数。
质心由各点的算术平均给出。
如果轮廓或多边形是闭合的(端点=起点),
则不考虑轮廓或多边形的端点,
以避免其接收到的权重是其他点的两倍。


如果轮廓XLD与自身相交,
或者在没有自交的情况下无法使用从端点到起点的直线关闭轮廓,
则应该使用area_center_points_xld,
因为在这种情况下,
area_center_xld不会产生有用的结果。
要测试轮廓线或多边形是否相交,
可以使用test_self_intersection_xld。


如果传递了多个轮廓或多边形,
结果将按照与XLD中相应的轮廓或多边形相同的顺序存储在元组中。




1.area_center_xld(XLD : : : Area, Row, Column, PointOrder)
area_center_xld计算轮廓线或多边形XLD包围区域的面积和重心(质心),
以及沿边界点的顺序。
面积和质心的计算仅使用轮廓或多边形上的点,
即,没有为计算特征而显式生成区域。
如果这些点在轮廓线或多边形中是逆时针排列的(点的顺序将是“正的”)。
假设轮廓线或多边形是闭合的。
如果不是这样,area_center_xld将关闭轮廓多边形。


需要注意的是,area_center_xld只在轮廓线或多边形在平面中包含一个区域时返回有用的结果。
特别是,轮廓线或多边形本身不能相交。这在传递开放轮廓或多边形时尤为重要,
因为它们是自动关闭的,这会产生自交。
要测试轮廓线或多边形是否相交,可以使用test_self_intersection_xld。
如果轮廓线或多边形与自身相交,则可以使用area_center_points_xld计算出一个有用的重心值。


如果传递了多个轮廓或多边形,
结果将按照与XLD中相应的轮廓或多边形相同的顺序存储在元组中。


例程
read_image (Image, 'printer_chip/printer_chip_01')
threshold (Image, Region, 128, 255)
connection (Region, ConnectedRegions)
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
gen_contour_region_xld (SelectedRegions, Contours, 'border')
area_center_points_xld (Contours, Area, Row, Column)
area_center_xld (Contours, Area1, Row1, Column1, PointOrder)
gen_cross_contour_xld (Cross, Row, Column, 12, 0.785398)
gen_cross_contour_xld (Cross1, Row1, Column1, 12, 0.785398)
dev_clear_window ()
dev_set_draw ('margin')
dev_display (SelectedRegions)
dev_display (Cross)
dev_set_color ('green')
dev_display (Cross1)

  

halcon从自学到接项目视频教程,另外再赠送全网最全资源  

  

欢迎围观我录制的一套halcon自学视频教程(进入)



回复

使用道具 举报

快速回复 返回列表 客服中心 搜索