1

我有以下代码:

for i:=0 to num_stripes by 1
        R := Row1 + 5*i
        gen_rectangle1(TransStripe, R,Column1,R+4, Column2)
        intersection(TransStripe, LabelSelcted, RegionIntersection)
        smallest_rectangle1(RegionIntersection, dummy, BeginCol, dummy, EndCol)
        inizio := BeginCol - 5
        fine := EndCol + 5
        area_center(RegionIntersection, dummy, centro_row, centro_col)
        gen_rectangle1(Str, R, inizio, R+4, fine)
        dev_set_color('red')
        dev_display(Str)
    endfor

在最后几行中,我创建了一个名为Str. 有没有办法即时创建名称,以便每个矩形都有一个变量?STR1,STR2 ...

4

1 回答 1

2

不幸的是,没有直接的方法可以做到这一点。有一些解决方法:

连接对象:

gen_empty_obj (EmptyObject)
for Index := 1 to 5 by 1
    gen_rectangle1 (Rectangle, 30, 20, 100, 200*Index)
    concat_obj (EmptyObject, Rectangle, EmptyObject)
endfor

** Selecting
select_obj (EmptyObject, ObjectSelected, 3)

使用向量(需要 Halcon 12+ 版本)

for Index := 0 to 4 by 1
    gen_rectangle1 (Rectangle.at(Index), 30, 20, 100, 200*(Index+1))
endfor

** Selecting
Object := Rectangle.at(2)

也可以将向量用作结构并添加多个级别,其中一个级别是名称和其他对象或值。如果你想了解更多,我写了一篇文章:https ://subpixel.hr/halcon-is-like-a-box-of-chocolates/

于 2020-06-10T08:11:18.620 回答