Halcon 语法

本文最后更新于:2022年12月17日 晚上

本文记录 Halcon 中的基础语法。

变量的创建与赋值

  • 在HALCON中可以创建变量并为变量赋值:
  1. Image变量的赋值
1
read_image(Image,'test.jpg')
  1. 区域的赋值
1
2
gen_rectanglel(Rectangle,100,100,30)
CopyRegion := Rectangle
  1. 亚像素数据的赋值
1
2
gen_contour_region_xld(Rectangle,Contours, 'border')
CopyXLD := Contours
  1. Tuple的创建赋值
1
2
3
EmptyTuple := []
Value := 1
ValueArray := [2, 10]
  1. 创建相同值的数组
1
tuple_gen_const(10,5,Newtuple)

if 语句

  • if 语句用于条件选择,即根据不同条件选择执行不同的主体语句
  • 语法:
1
2
3
4
5
6
7
if(条件)
主体语句
elseif(条件)
主体语句
else
主体语句
endif

for 循环语句

  • 介绍 HALCON的 for 循环语句。在编程中经常会用到循环语句,来进行循环的操作。
1
2
3
for(Index := StartNumber to EndNumber by Step)
循环的语句
endfor

中断语句

  • 在HALCON 中,continue 和 break 是用来继续运行下次循环和跳出当前循环的,break 和 contiune 可以用在 for、while和 switch 循环中,起到控制序运行的作用。
1
2
3
4
5
6
7
8
9
10
Array3:=[]
for i: =I to Number by 1
if(i=3)
continue
endif
if(i = 7)
break
endif
Array3:[Array3, i]
endfor

while 循环语句

  • while 循环语句是用于多次循环的语句,通过判断条件来控制循环是继续还是结束;当条件为正确时继续执行循环,当条件为错误时退出循环。
1
2
3
while(条件)
循环体语句
endwhile

repeat until 循环语句

HALCON 中还有一种 repeat until 循环结构

  • repeat 和 until 类似于 C 语言中的 do while,但是有所不同。do while 语句是 while 的条件为正确的时候,继续执行,而 repeat until 语句是当 until 语句为正确的时候就跳循环。
  • 和 while相比 repeat until 是先执行 repeat 语句,然后再进行条件判断,而 while 是直接进行判断。
1
2
3
repeat
循环体语句
until(条件)

switch 语句

  • switch 语句是一个条件选择语句,当 if 多层嵌套时,可以用 switch 来代替,使得结构简单。
1
2
3
4
5
6
7
8
9
10
switch(条件)
case 常量表达式一:
主体语句
break
case常量表达式二:
主体语句
break
default
主体语句
endswitch

try catch 语句

  • Halcon 的异常处理语句,可以在程序出错的情况下不中断程序执行,捕获并处理异常
1
2
3
4
5
try
主体语句
catch (Exception)
异常处理语句
endtry

参考资料


Halcon 语法
https://www.zywvvd.com/notes/coding/halcon/halcon-grammar/halcon-grammar/
作者
Yiwei Zhang
发布于
2022年12月13日
许可协议