博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Halcon中循环的相关算子
阅读量:6001 次
发布时间:2019-06-20

本文共 1829 字,大约阅读时间需要 6 分钟。

条件<condition> ,<condition> 内为计算成an integer or boolean value的表达式。六.Halcon控制循环算子

表达式的值1则条件为真,否则为假。

1.if(<condition>)。。。 endif:条件为真时,执行条件后的内容,否则转到endif.

2.if (<condition>)...else...endif:条件为真,执行if...else部分,否则执行else...endif,典型的选择条件语句。

3.elseif相当于算子2的else部分,但是它允许测试一个附件条件。

例如:if (<condition1>)...elseif (<condition2>)...endif 当条件1为假条件2为真时,执行条件2后面的部分。在语法结构上等价于:if (<condition1>)

                               ...
                          else
                          if (<condition2>)
                            ...
                          endif
                        endif

循环控制语句

1.while (<condition>)... endwhile:循环控制结构,当条件为真时,执行循环体。可以利用operator continuebreak操作来重新开始或立刻终止循环。

2.repeat...until (<condition>):循环体至少被执行一次,直到满足条件时退出。

3.for <index> := <start> to <end> by <step>...endfor

halcon最重要的循环结构,呵呵不细说了~同样,可以利用operator continuebreak操作来重新开始或立刻终止循环。

例如:

old_x := 0

old_y := 0
dev_set_color ('red')
dev_set_part(0, 0, 511, 511)
for x := 1 to 511 by 1
y := sin(x / 511.0 * 2 * 3.1416 * 3) * 255
disp_line (WindowID, -old_y+256, old_x, -y+256, x)
old_x := x
old_y := y
endfor

4.continue:强制执行下一个循环。

例如:i := |Images|

while (i)
Image := Images[i]
count_channels (Image, Channels)
if (Channels # 3)
continue
endif
* extensive processing of color image follows
endwhile

5.break:强制退出循环。

例1.

Number := |Regions|

AllRegionsValid := 1
* check whether all regions have an area <= 30
for i := 1 to Number by 1
ObjectSelected := Regions[i]
area_center (ObjectSelected, Area, Row, Column)
if (Area > 30)
AllRegionsValid := 0
break ()
endif
endfor

例2.

while (1)

grab_image (Image, FGHandle)
dev_error_var (Error, 1)
dev_set_check ('~give_error')
get_mposition (WindowHandle, R, C, Button)
dev_error_var (Error, 0)
dev_set_check ('give_error')
if ((Error = H_MSG_TRUE) and (Button # 0))
break ()
endif
endwhile

其他

1.stop:终止后面的循环,点击Step Over or Run button继续。

2.exit:终止Hdevelop程序段。

3.return:从当前的程序返回到正在呼叫的算子。

4.try ... catch ... endtry:异常算子处理句柄

5.throw:允许处理用户定义的意外情况。

转载于:https://www.cnblogs.com/6-6-8-8/p/9549582.html

你可能感兴趣的文章
Qt之模型/视图(自定义进度条)
查看>>
Reporting Services 错误案例一则
查看>>
开源大数据周刊-第1期
查看>>
HDFS配置Kerberos认证
查看>>
IOS(CGGeometry)几何类方法总结
查看>>
学会放下包袱,热爱单例
查看>>
一个通用并发对象池的实现
查看>>
才知道系列之GroupOn
查看>>
⑲云上场景:超级减肥王,基于OSS的高效存储实践
查看>>
linux kswapd浅析
查看>>
EJB,产品 or 标准?
查看>>
MFC函数简单解释(更新至28日凌晨)
查看>>
【spring框架】动态代理的学习(转)
查看>>
牛X素材推荐之StackOverView
查看>>
Android AppBarLayout以及ToolBar去除阴影
查看>>
iOS Socket编程-C语言版(UDP)
查看>>
AsyncHttpClient的CookieStore问题
查看>>
[经典面试题][百度]求比指定数大且最小的“不重复数”
查看>>
MySQL_忘记Root密码并找回
查看>>
使用 CEFPython 打造自己的浏览器视图
查看>>