Halcon7:查询区域集中面积排序第n的区域的实现

Halcon7:查询区域集中面积排序第n的区域的实现[旧笔记整理]

(1)目的:

         用于查询区域集合中某个属性(如面积、圆度、凸度、轮廓长度等)排序第n的区域,本文中以面积为例。

(2)代码实现:

//[1]获得区域集合
read_image (Yuan, 'C:/Users/happy xia/Desktop/yuan.png') 
binary_threshold (Yuan, Region, 'max_separability', 'dark', UsedThreshold) 
connection (Region, ConnectedReqions)
area_center (ConnectedRegions, Area, Row, Column)


//[2]查询面积排序第num的区域为ObjectSelected
tuple_sort_index (Area, Indices)
Num := |Indices|
select_obj (ConnectedRegions, ObjectSelected, Indices[Num-1] +1)

(3)函数解析:

       ①函数原型:

            tuple_sort_index (Area, Indices)

       ②函数功能:

            先将Area数组中各元素按升序排序,然后将排序后的每一个元素在原Area元组中的索引放在元组Indices中。

       ③举例:

            假设代码中:Area := [420, 12922, 38019, 58, 2033]

            Indices :=[3, 0,4, 1, 2]

            那么:

                  58是Area中的3号元素(元组索引从0开始);

                  420是Area中的0号元素;

                  2033是Area中的4号元素;

                  12922是Area中的1号元素;

                  38019是Area中的2号元素。

(4)应用:
         

select_obj (ConnectedRegions, ObjectSelected, Indices[Num-1] + 1)       //最大  
select_obj (ConnectedRegions, ObjectSelected, Indices[Num-2] +1         //第二大
select_obj (ConnectedRegions, ObjectSelected, Indices[2] + 1)           //第二小以此类推

 

          

你可能感兴趣的:(halcon,halcon,图像处理)