zoukankan      html  css  js  c++  java
  • Halcon 数组操作

    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







     

    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

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

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

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

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

    endfor                                                 //循环结束

     

     

    1、求数组元素的最大值

    tuple_max(Array,Max)

    2、求数组元素的最小值

    tuple_min(Array,Min)

    3、求数组元素的平均值

    tuple_mean(Array,Mean)

    4、求数组元素的绝对值

    tuple_abs(Array,Abs)

    5、两个数组相加

    tuple_add(Array1,Array2,Sum)

    6、两个数组相减

    tuple_sub(Array1,Array2,Sub)

    5、选择数组里面一定范围的元素组成新数组

    tuple_select_range(Array,LeftIndex,RightIndex,ArraySelect)

    6、将两个数组相连接

    tuple_concat(Array1,Array2,Concat)

    7、将两个数组元素逻辑与

    tuple_and(Array1,Array2,And)

    8、将两个数组元素逻辑或

    tuple_or(Array1,Array2,Or)

    9、给数组元素升序排序

    tuple_sort(Array,Sorted)

    10、给数组元素升序排序返回的数组元素是排好序的元素原来的下标

    tuple_sort_index(Array,Indices)

    11、反转一个数组

    tuple_inverse(Array,Inverted)

    12、比较两个数组是否相等

    tuple_equal(Array1,Array2,Equal)

    13、计算数组元素对应的弧度的角度

    tuple_deg(Array,Deg)

    14、在数组1中寻找数组2,如果有返回第一个元素对应的下标,否则返回-1

    tuple_find(Array1,Array2,Indices)

    15、获取数组的长度

    tuple_length(Array,Length)

    16、比较两个数组的对应元素,取每个大值放于结果中

    tuple_max2(Array1,Array2,Max2)

    17、比较两个数组的对应元素,取每个小值放于结果中

    tuple_min2(Array1,Array2,Min2)

    18、区数组元素的中值

    tuple_median(Array,Median)

    19、将数组元素值由角度值转换为弧度值

    tuple_rad(Array,Rad)

    20、将数组元取反(正负转换)

    tuple_neg(Array,Neg)

  • 相关阅读:
    Use "Attach to Process" in VC Express 2010
    韩国三日游
    可耻的没通过Autodesk 3ds Max初级认证
    Trace depth and rays per second per core
    References on SSS
    Free Shave SDK
    New wisdom on offline/interactive rendering
    匹配汉字的正则表达式
    WPF中richtextbox的一些用法
    C#中禁止一个程序打开多次
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14444977.html
Copyright © 2011-2022 走看看