Halcon学习(3)赋值与数组操作

assign  对数据赋值,对数组的初始化。但不能对数组中的某一个值进行赋值。

 

举例:Tuple1 := [1,0,3,4,5,6,7,8,9]    // 对数组进行初始化

            Val := sin(1.2) + cos(1.2)        // 对某一个值进行赋值

 

            Tuple2 := []                           // 数组定义  

assign_at  对数组中的某一个值进行赋值。

举例:Tuple1[1] := 2                       // Input 和Result 赋值为Tuple1

image.png

image.png

2.Insert : 对数组中的某一个值进行赋值。

      Tuple1 := [1,0,3,4,5,6,7,8,9]

      Tuple1[3]:=2

显示结果为:[1, 0, 3, 2, 5, 6, 7, 8, 9],即对索引3后面元素,数组Tuple1中第4个元素赋值2.

example:

read_image (Mreut, 'mreut')               //读入图像

threshold (Mreut, Region, 190, 255)      //阈值化,输出阈值在190-255的Regions

Areas := []                              //定义数组Areas

for Radius := 1 to 50 by 1               //循环

dilation_circle (Region, RegionDilation, Radius) //利用半径为Radius的圆对Region进行膨胀运算,输出

                                                   RegionDilation,输出形式仍然为Region。

area_center (RegionDilation, Area, Row, Column) //输出区域的面积和中心像素坐标

Areas[Radius-1] := Area                        //对数组Areas的第Radius-1个元素进行赋值

endfor

3.基本数组操作极其对应的算子

t := [t1,t2]     t1,t2连接成新的数组                 对应算子:tuple_concat

i := |t|         得到数组长度                                  tuple_length

v := t[i]        选取第i个元素0<= i < |t|                      tuple_select

t := t[i1:i2]    选取i1到i1的元素                              tuple_select_range

t := subset(t,i) 选取数组t中的第i个元素                        tuple_select

t := remove(t,i) 去除数组t中的第i个元素                        tuple_remove

i := find(t1,t2) 找到t2数组在t1数组中出现位置索引

                  (or -1 if no match)                          tuple_find

t := uniq(t)     在t数组中把连续相同的值只保留一个             tuple_uniq

4.创建数组

(1)gen_tuple_const函数

tuple := gen_tuple_const(100,4711) //创建一个具有100个元素的,每个元素都为4711的数据

tuple_new := gen_tuple_const(|tuple_old|,4711) //创建一个和原来数据长度一样的数据

上面的函数也可以通过如下表达式实现:tuple_new := (tuple_old * 0) + 4711

注意:笔者的halcon10没有gen_tuple_const函数,只有
tuple_gen_const( : : Length, Const : Newtuple) ,效果同上

(2)当数组中的元素不同时,需要用循环语句对数组中的每一个元素赋值

例如:tuple := []                                        //创建空数组

for i := 1 to 100 by 1                                  //建立步长为1的循环

tuple := [tuple,i*i]                                   //将i方的值赋给数组的第i个元素

endfor                                                 //循环结束

另收录一些数组常用操作,有些只适用于halcon12

* 将一个Tuple数组赋值给变量
Tuple1 := [1,2,3,4,5,6,7,8,9]
 
 
*给Tuple数组元素赋值
Tuple1[1] := 0
 
 
* 批量改变数组元素的值
Tuple1[1,3,5] := 'wh'
 
 
* 批量给Tuple数组赋值,其值为0到100连续数值
Tuple3 := [0:100]
 
* 批量给Tuple数组赋值,其值为3到100连续数值,步长为2
Tuple4 := [3:2:100]
*3,5,7,9...95,97,99 
 
* 批量给Tuple数组赋值,其值为100到-100连续数值,步长为-10
Tuple5 := [100:-10:-100]
*100,90,80,70...-90,-100
 
 
* 对两个Tuple数组进行合并操作
TupleInt1 := [3,1,2,9,1]
TupleInt2 := [10,2,4,3,2]
tuple_union (TupleInt1, TupleInt2, UnionInt)
 
 
 
* 对两个Tuple数组进行交集操作
TupleInt3 := [3,1,2,9,1]
TupleInt4 := [10,2,4,3,2]
tuple_intersection (TupleInt3, TupleInt4, IntersectionInt)
 
 
 
* 对Tuple数组元素进行替换
OriginalTuple := [0,1,2,3,4,5]
tuple_replace (OriginalTuple, [0,1], ['x','y'], Replaced)
 
 
 
* 向Tuple数组插入数值
OriginalTuple := [0,1,2,3,4,5]
tuple_insert (OriginalTuple, 3, 'x', InsertSingleValueA)


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年3月    »
123
45678910
11121314151617
18192021222324
25262728293031
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864