【加油武汉!中国必胜】【Halcon算子】find_neighbors 寻找相邻区域

find_neighbors(Regions1Regions2 : : MaxDistance : RegionIndex1RegionIndex2)

Regions1  :    输入参数 ,  起始参考区域

Regions2 :     输入参数 ,对比区域

MaxDistance :  输入参数,区域之间相隔像素距离,用于判定是否为邻域

 RegionIndex1:输出结果1 ,存放region1中 的中心区域的索引值

RegionIndex2:输出结果2, 存放region2中 与输出结果1中对应区域的邻域的索引值

Regions1  有三种状态:

 

 

  • Regions1 空的: 
    这种情况下,所有存在于Regions2 中的区域将被重置检测是否为邻域.

  • Regions1 包括一个区域: 
     Regions1 的这个区域会被.Regions2 的所有区域比较来确定是否是其邻域

  • Regions1Regions2的区域一样: 
    计算   Regions1Regions2 的第n-th个区域 是否有邻域关系.

示例如下:

read_image (Image, 'fabrik')
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowID)
dev_set_colored (6)
regiongrowing (Image, Regions, 1, 1, 3, 200)
gen_empty_region (Empty)
expand_region (Regions, Empty, RegionExpanded, 'maximal', 'image')
dev_clear_window ()
select_obj (RegionExpanded, ObjectSelected, 19)
sort_region (RegionExpanded, SortedRegions, 'lower_right', 'true', 'row')
find_neighbors (ObjectSelected, RegionExpanded, 2, RegionIndex1, RegionIndex2)
find_neighbors (SortedRegions, RegionExpanded, 2, RegionIndex1, RegionIndex2)
select_obj (RegionExpanded, ObjectSelected, RegionIndex2)
gen_empty_obj (NoObj)
find_neighbors (NoObj, RegionExpanded, 1, RegionIndex1, RegionIndex2)
shape_trans (RegionExpanded, RegionTrans, 'inner_center')
area_center (RegionTrans, Area, Row, Column)
stop ()
dev_clear_window ()
dev_set_colored (6)
dev_display (RegionExpanded)
dev_set_draw ('margin')
dev_set_color ('black')
dev_set_line_width (1)
dev_display (RegionExpanded)
dev_set_color ('white')
dev_set_line_width (3)
for i := 0 to |RegionIndex1| - 1 by 1
    disp_line (WindowID, Row[RegionIndex1[i] - 1], Column[RegionIndex1[i] - 1], Row[RegionIndex2[i] - 1], Column[RegionIndex2[i] - 1])
endfor

 

 

 

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