halcon學習筆記(一) 基礎資料

2021-07-10 01:34:18 字數 2847 閱讀 7195

1.assign運算元:assign(input, result),對變數以及表示式或陣列賦值

例: assign(2*(x)+(y),z)

等同於z:=2*(x)+(y)

2.初始化:tuple1 := [1,0,3,4,5,6,7,8,9] 

// 對陣列進行初始化

val := sin(1.2) + cos(1.2) 

// 對某乙個值進行賦值

tuple2 :=  

// 陣列定義 

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 

// htuple→vc 資料型別轉換

htuple htuple = 1234;

int i = htuple[0].i(); // i=1234

long l = htuple[0].l(); // l=1234

long lnumber = htuple.num(); // lnumber=1,資料個數

double d = htuple[0].d(); // d=1234.0000

htuple = "1234";

cstring strbuffer = htuple[0].s(); // strbuffer="1234"

// vc→htuple 資料型別轉換

int ii = 1234;

double dd = 1234.1234;

cstring strtemp = "halcon";

htuple htuple2;

htuple2[0] = ii; // htuple2[0].i()=1234

htuple2[1] = dd; // htuple2[1].d()=1234.1234

htuple2[2] = strtemp.getbuffer(); // htuple2[2].s()="halcon"

i = htuple2[0].i(); // i=1234

d = htuple2[1].d(); // d=1234.1234

strbuffer = htuple2[2].s(); // strbuffer="halcon"

lnumber = htuple2.num(); // lnumber=3,資料個數

另外:halcon 的路徑類似為「d:/addr/a.jpg」,即以「/」為分隔符。

和 vc 所用的「\」不同,需要轉換。

halcon學習基礎

x 16 y 9 result 10 sqrty result sqrt y z 90 180 z result sin z z result sin z sin y tuple1 1,2,3,4,5,6,7,8,9 insert tuple1,10,9,outtuple outtuple 10 1...

halcon學習資料

目錄 論壇培訓 部落格文件 halcon學習網 韓兆新的 majunfu life and coding zhaojun的部落格 風韻無聲 騎螞蟻上高速的部落格 小馬 xiaolv2 小新識圖 程式園 程式設計師的世界 章柯淵的部落格 注 介紹了halcon與mfc混合程式設計!fred 的竊竊私語...

HALCON學習筆記3

來自黑土的halcon學習教程,求鞍點 讀取影象 read image image,landmarks 獲得影象大小 get image size image,width,height 關閉影象視窗 dev close window 開啟指定大小顏色的視窗 dev open window 0,0,w...