halcon 轮廓到轮廓的距离
时间: 2023-12-11 12:32:35 浏览: 109
根据引用[1]中提到的两种方法,halcon中可以使用distance_ss和distance_pl函数来计算轮廓到轮廓的距离。
1. 使用distance_ss函数计算轮廓到轮廓的最小距离:
```halcon
distance_ss (Contour1, Contour2 : DistanceMin : RowMin, ColumnMin, RowMax, ColumnMax : )
```
其中,Contour1和Contour2分别为两个轮廓,DistanceMin为轮廓到轮廓的最小距离,RowMin和ColumnMin为最小距离点在图像中的行列坐标,RowMax和ColumnMax为最大距离点在图像中的行列坐标。
2. 使用distance_pl函数计算轮廓到轮廓的中点到直线的距离:
```halcon
distance_pl (Contour : DistanceMin : Row, Column, DistanceMax : )
```
其中,Contour为轮廓,DistanceMin为中点到直线的距离,Row和Column为中点在图像中的行列坐标,DistanceMax为轮廓到直线的最大距离。
相关问题
Halcon - 测量 - 轮廓到线的距离
在Halcon中,可以使用函数`distance_pl`来计算轮廓到线的距离。这个函数需要两个输入参数:轮廓的边界点坐标和线的参数。具体的步骤如下:
1. 获取轮廓的边界点坐标。可以使用函数`gen_contour_polygon`来生成轮廓的边界点坐标。
2. 获取线的参数。可以使用函数`create_line`、`create_parallel_line`等来创建直线,然后使用函数`get_line_params`来获取直线的参数。
3. 使用函数`distance_pl`来计算轮廓到线的距离。这个函数会返回轮廓到线的最短距离。
下面是一个示例代码:
```
contour := gen_contour_polygon(Image, 'border')
line := create_line(100, 200, 300, 400)
distance := distance_pl(contour, line)
```
其中,`Image`为输入的图像,`100, 200, 300, 400`为线的起点和终点坐标。`distance`即为轮廓到线的距离。
halcon获取闭合轮廓的最短距离
要获取闭合轮廓的最短距离,可以使用Halcon中的distance_cc函数。该函数用于计算两个闭合轮廓之间的最短距离。具体使用方法如下:
1. 使用gen_contour_region函数生成闭合轮廓区域对象。
2. 使用distance_cc函数计算两个闭合轮廓之间的最短距离。
例如,假设我们有两个闭合轮廓contour1和contour2,可以使用以下代码计算它们之间的最短距离:
```
gen_contour_region (Contour1, 'border', 1, 'outer')
gen_contour_region (Contour2, 'border', 1, 'outer')
distance_cc(Contour1, Contour2, 'distance', 'no_sort')
```
其中,'distance'是输出参数,表示两个轮廓之间的最短距离。'no_sort'表示不需要对轮廓进行排序。
注意:要使用distance_cc函数,必须保证两个轮廓都是闭合的。如果轮廓不是闭合的,可以使用close_contour_xld函数将其闭合。