Halcon数据类型

本文介绍了使用HALCON进行图像处理的基础知识,包括图形类型如图像、区域及轮廓的操作,控制类型的变量定义,句柄的概念及使用,以及如何运用不同的控制流如循环、条件判断等。此外还详细讲解了数组的定义、赋值和各种操作。
摘要由CSDN通过智能技术生成

1.1*图形类型

*图像

read_image(Image, 'fabrik')

*region区域

gen_rectangle1(Rectangle,30, 20, 100, 200)

*xld轮廓

gen_contour_region_xld(Rectangle,Contours,'border')

 

1.2*控制类型

str := 'ihalcon'

Num := 1000

Cont := 10.05

*数组

array := [1,2,3.4,5]

 

1.3*句柄

reduce_domain(Image, Rectangle, ImageReduced)

create_shape_model(ImageReduced, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)

clear_shape_model(ModelID)

 

1.4*运算符

*赋值

Cont := 10.05

 

1.5*比较操作符

A:=20

*t<t  less than

if(A<10)

    stop()

else

    stop()

endif

*t>t  greater than

if(A>10)

    stop()

else

    stop()

endif

*t<=t  less or equal

if(A<=10)

    stop()

else

    stop()

endif

*t>=t  greater or equal

if(A>=10)

    stop()

else

    stop()

endif

*t=t  equal

if(A=10)

    stop()

else

    stop()

endif

*t#t  not equal

if(A#10)

    stop()

else

    stop()

endif

*and  vc中为&&

if(A>1 and A<30)

    stop()

else

    stop()

endif

*or  vc中为||

if(A<=1 or A>=30)

    stop()

else

    stop()

endif

*取反 not  vc中为!

if(not(A=10))

    stop()

else

    stop()

Endif

 

1.6*控制流

for i := 1 to 5 by 1

    continue

endfor

 

*if

if(not(A=10))

    stop()

else

    stop()

endif

 

*while

j:=0

while(j#10)

    j := j+1

endwhile

 

*switch

j:=0

while(j#10)

    j:=j+1

    switch(j)

    case 1:

    stop()

    break

    case 2:

    stop()

    break

    default:

    stop()

    break

    endswitch

Endwhile

 

 

 

1.7*数组操作

*数组定义方式1

Tuple := []

*数组定义方式2

tuple := gen_tuple_const(100, 2711)  //创建一个具有100个元素的,每个元素都为47·的数组

 

*赋值:对数据同仁,对数组的初始化

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

 

*基本数组操作及其对应的算子

*t1,t2连接成新的数组,对应算子:tuple_concat

t1:=[1,2,3]

t2:=[4,5,6]

t:=[t1,t2]

tuple_concat(t1, t2, t3)

 

*得到数组长度 对应算子:tuple_length

i := |t|

tuple_length(t, Length)

 

*选取第i个元素0<=i <|t| 对应算子:tuple_select

i:=2

V := t[i]

tuple_select(t, 1, Selected)

 

*选取i1i2的元素 对应算子:tuple_select_range

i1 := 3

i2 := 5

t2s := t[i1:i2]

 

tuple_select_range(t, i1, i2, t3)

*选取数组t中的第i个元素  对应算子:tuple_select

i := 2

t2 := subset(t,i)

 

tuple_select(t,i,t3)

 

*去除数组t中的第i个元素  对应算子:tuple_remove

Temp:=t

i:=2

t2 := remove(Temp, i)

 

*找到t2数组在t1数组中出现位置索引(如果没有找到,返回-1)  对应算子:tuple_find

t1 := [3,4]

t2 := find(t,t1)

 

tuple_find(t, t1, t3)

 

t1:=[8,4]

t2:= find(t,t1)

 

tuple_find(t, t1, t3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值