Halcon图像的 BLOB 分析处理项目实现&画 ROI 区域及区域生成&保存区域,读取区域&生成空对象,向空对象中添加对象&区域间距离

211 阅读4分钟

画 ROI 区域并生成区域

画draw_?circle/ellipse/rectangle1/rectangle2/line, 生成一个的区域gen_?circle/ellipse/rectangle1/rectangle2/line

画···········

       算子:draw_circle( : : WindowHandle : RowColumnRadius)

       示例:draw_circle (200000, Row3, Column3, Radius1)

              200000(输入参数):输入窗口句柄

Row3(输入参数):输入中心点行坐标

Column3(输入参数):输入中心点列坐标

Radius1(输入参数):输入圆的半径

生成··············

算子:gen_circle( : Circle : RowColumnRadius : )

示例:gen_circle (Circle, Row3, Column3, Radius1)

Circle(输出对象):输出一个元的2区域对象

Row3(输出参数):输出中心点行坐标

Column3(输出参数):输出中心点列坐标

Radius1(输出参数):输出圆的半径

5.2保存区域,读取区域。

       读取区域read_region

       算子:read_region( : Region : FileName : )

       示例:read_region (Region2, 'region.hobj')

              Region2(输出对象):输出读取的区域图像

              'region.hobj(输入参数):输入的读取路径

 

       保存区域write_region

       算子:write_region(Region : : FileName : )

示例:write_region (Rectangle3, 'region.hobj')

Rectangle3(输入对象):输入的图像对象

'region.hobj'(输入控制参数):输入的存储名称格式

注:相对路径是指相对于本文件存储路径下的存储路径,绝对路径是详细的存储路径

5.3生成空对象,向空对象中添加对象

       生成空区域:gen_empty_region

       算子:gen_empty_region( : EmptyRegion : : )

       示例:gen_empty_region (EmptyRegion)

              EmptyRegion(输出对象):输出一个空区域

 

       生成空对象:gen_empty_obj

       算子:gen_empty_obj( : EmptyObject : : )

       示例:gen_empty_obj (EmptyObject)+

              EmptyObject(输出对象):输出一个空对象

 

****添加对象:concat_obj

       算子:concat_obj(Objects1Objects2 : ObjectsConcat : : )

       示例:concat_obj (Rectangle2, Rectangle3, ObjectsConcat)

              Rectangle2(输入对象):输入第一个对象

              Rectangle3(输入对象):输入第二个对象

              ObjectsConcat(输出对象):输出整合的对象

5.4区域间距离

       点到点 distance_pp

       算子:distance_pp( : : Row1Column1Row2Column2 : Distance)

       示例:distance_pp (10, 10, 100, 100, Distance)

              10(输入参数1):输入第一个点的行坐标

10(输入参数2):输入第一个点的列坐标

100(输入参数3):输入第二个点的行坐标

100(输入参数4):输入第二个点的行坐标

Distance(输出参数):输出两个点的最短的距离


****点到直线 distance_pl

算子:distance_pl( : : RowColumnRow1Column1Row2Column2 : Distance)

       示例:distance_pl (170, 950, 50, 50, 990, 990, Distance1)

170(输入参数1):输入点的行坐标

950(输入参数2):输入点的列坐标

50(输入参数3):输入线的前端行坐标

50(输入参数4):输入线的前端列坐标

990(输入参数5):输入线的后端行坐标

990(输入参数6):输入线的后端列坐标

Distance1(输出参数):输出点到线的最短距离

 

****点到区域的最长最短 distance_pr

       算子:distance_pr(Region : : RowColumn : DistanceMinDistanceMax)

       示例:distance_pr (RegionLines1, 170, 950, DistanceMin, DistanceMax)

              RegionLines1(输入对象):输入区域对象

170(输入参数1):输入点的行坐标

950(输入参数2):输入点的列坐标

DistanceMin(输出参数1):输出点到区域最短距离

DistanceMax(输出参数2):输出点带区域最长距离

 

       直线到区域最长最短 distance_lr (平面度)

算子:distance_lr(Region : : Row1Column1Row2Column2 : DistanceMinDistanceMax)

示例:distance_lr (RegionLines1, 150, 1750, 300, 2000, DistanceMin1, DistanceMax1)

              RegionLines1(输入对象):输入线的区域对象

              150(输入参数1):输入矩形左上角对行坐标

              1750(输入参数2):输入矩形左上角对列坐标

              300(输入参数3):输入矩形右下角对行坐标

              2000(输入参数4):输入矩形右下角对列坐标

              DistanceMin1(输出参数1):输出直线到区域的最短距离

              DistanceMax1(输出参数2):输出直线到区域的最长距离

 

****区域与区域最短 distance_rr

算子:distance_rr_min(Regions1Regions2 : : : MinDistanceRow1Column1Row2Column2)

示例:distance_rr_min (ROI_0, ROI_1, MinDistance, Row15, Column15, Row24, Column24)

              ROI_0(输入对象1):输入第一个区域对象

              ROI_1(输入对象2):输入第二个区域对象

MinDistance(输出参数1):输出两个区域的最短距离

Row15(输出参数2):输出区域一离区域二最近的点位行坐标

Column15(输出参数3):输出区域一离区域二最近的点位列坐标

Row24(输出参数4):输出区域二离区域一最近的点位行坐标

Column24(输出参数5):输出区域二离区域一最近的点位列坐标