halcon如何筛选宽度或高度不能大于150的区域
时间: 2024-04-29 19:22:28 浏览: 13
在Halcon中,可以使用`select_shape`函数来筛选形状。可以使用`select_shape`函数的`width`或`height`参数来指定宽度或高度的最大值,然后将该函数应用于区域,即可得到符合条件的区域。
下面是一个示例代码,假设`Region`是一个包含多个区域的变量,我们想要筛选出宽度或高度不能大于150的区域:
```
min_size := 0
max_size := 150
select_shape (Region, SelectedRegions, 'width', 'and', min_size, max_size)
select_shape (SelectedRegions, SelectedRegions, 'height', 'and', min_size, max_size)
```
首先,使用`select_shape`函数筛选出宽度不大于150的区域,并将结果保存到`SelectedRegions`变量中。然后再次使用`select_shape`函数筛选出高度不大于150的区域,并将结果保存到`SelectedRegions`变量中。此时,`SelectedRegions`变量中包含的区域就是符合条件的区域。
相关问题
halcon区域宽度
根据引用和引用中的信息,Halcon中的区域宽度可以使用算子get_region_thickness和其他算子来计算。具体的计算步骤如下:
1. 对于给定的区域ROI,使用算子get_region_thickness来获取区域的厚度。厚度是指轮廓线与主轴上铅垂线在各自点上相距最远的交点之间的距离。
2. 使用其他算子,例如gen_contour_region_xld和skeleton,来处理区域并得到其轮廓和骨架。
3. 使用算子get_region_contour来获取轮廓的点集。
4. 使用算子distance_pc来计算轮廓点集中各点到主轴的距离。
5. 使用算子tuple_mean来计算距离的平均值,然后将平均值乘以2得到粗略的区域宽度。
因此,Halcon中的区域宽度可以通过以上步骤来计算。<em>1</em><em>2</em>
#### 引用[.reference_title]
- *1* *2* [<Halcon> 粗略计算不规则区域宽度的一种方法](https://blog.csdn.net/thisiszdy/article/details/128788805)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item]
[ .reference_list ]
halcon 获取区域宽度
在Halcon中,获取区域宽度可以使用`region_features`函数和`get_region_contour`函数。
1. 使用`region_features`函数获取区域的宽度:
```
gen_rectangle1(RectangleRow, RectangleColumn, RectanglePhi, RectangleLength1, RectangleLength2)
gen_region_contour_xld(Rectangle, RectangleRow, RectangleColumn, RectanglePhi, RectangleLength1, RectangleLength2)
gen_region(RectangleRegion, 'contour', Rectangle)
Width := region_features(RectangleRegion, 'width')
```
在上述代码中,我们首先使用`gen_rectangle1`函数生成一个矩形区域,然后使用`gen_region_contour_xld`函数获取矩形的轮廓,并将轮廓转换为区域。最后,使用`region_features`函数获取区域的宽度并赋值给变量`Width`。
2. 使用`get_region_contour`函数获取区域的宽度:
```
gen_rectangle1(RectangleRow, RectangleColumn, RectanglePhi, RectangleLength1, RectangleLength2)
gen_region_contour_xld(Rectangle, RectangleRow, RectangleColumn, RectanglePhi, RectangleLength1, RectangleLength2)
Width := get_region_contour(Rectangle, 'width')
```
在上述代码中,我们同样使用`gen_rectangle1`函数生成一个矩形区域,然后使用`gen_region_contour_xld`函数获取矩形的轮廓,并将轮廓转换为区域。最后,使用`get_region_contour`函数获取区域的宽度并赋值给变量`Width`。
无论是使用`region_features`函数还是`get_region_contour`函数,都需要先将轮廓转换为区域。如果已经有了区域,则可以直接使用`region_features`函数获取区域的宽度。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)