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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM