Halcon--选取前五个最大的面积区域

文章目录

  • 前言
  • 一、思路
  • 二、实现
  • 三、源码
  • 总结


前言

基于Halcon选取前五个最大的面积区域


一、思路

【1】读取测试图后,使用threshold阈值分割图像,再用connection连接组件,确定前景区域
【2】使用area_center传递前景区域,结果存储在元组中,元组中的值的索引对应于输入区域的索引,而后使用tuple_sort_index对元组的元素进行排序并返回排序后的元组的索引,并使用tuple_length计算元组长度。采用select_obj从对象元组中选择对象。这里选择倒5。area_center计算相应的面积。
【3】使用select_shape借助形状特征选择区域,这里选取面积大小前5的区域,再用area_center将数据储存进元组。

二、实现

Halcon--选取前五个最大的面积区域_第1张图片
Halcon--选取前五个最大的面积区域_第2张图片

三、源码

*读取测试图
read_image(Image,'D:/USER/Desktop/design/dataset/区域提取,选出其中最大的5.tif')
*阈值分割图像
threshold(Image, Region, 0, 150)
*连接组件,确定前景区域
connection(Region, ConnectedRegions)
*传递前景区域,结果存储在元组中,元组中的值的索引对应于输入区域的索引
area_center(ConnectedRegions, Area, Row, Column)
*对元组的元素进行排序并返回排序后的元组的索引
tuple_sort_index(Area, Indices)
*计算元组长度
tuple_length(Area,Length)
*从对象元组中选择对象。这里选择倒5
select_obj(ConnectedRegions, ObjectSelected, Indices[Length-5]+1)
*计算面积
area_center(ObjectSelected,Area1, Row1, Column1)
*借助形状特征选择区域,这里选取前5
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', Area1, max(Area))
*储存进元组
area_center(SelectedRegions, Area2, Row2, Column2)

总结

希望对你有所帮助,有什么疑惑欢迎留言交流。

你可能感兴趣的:(Halcon,机器视觉,计算机视觉,图像处理)