惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
F
Fortinet All Blogs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 叶小钗
爱范儿
爱范儿
美团技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
有赞技术团队
有赞技术团队
博客园_首页
T
The Blog of Author Tim Ferriss
T
Tailwind CSS Blog
V
Visual Studio Blog
Jina AI
Jina AI
博客园 - Franky
量子位
MongoDB | Blog
MongoDB | Blog
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
aimingoo的专栏
aimingoo的专栏
M
MIT News - Artificial intelligence

又见苍岚

COLMAP PatchMatch Stereo 算法详解 事件驱动的状态机框架:从理论到工程实践 Git 在国内网络环境下无法 Push 的排查与修复 —— 配置 Clash 代理 分段五次多项式插值原理详解 路径插值方法深度对比研究 Claude Code 使用指南 OpenClaw 记忆管理与技能创建指南 CBS(Conflict-Based Search)算法详解 A* 算法及其变种详解 OpenClaw 配置多 Agents Windows Powershell 无法加载文件,因为在此系统上禁止运行脚本问题的解决方案 MaxClaw 安装流程 大模型 AI 名词介绍 AList 网盘聚合工具简介 Protobuf 简介与测试 Claude Code 简介以及 GLM 4.7 模型接入 Github 歌词下载工具 163MusicLyrics Python __getattr__ 懒加载 Python TypedDict 机器人仿真平台 Gazebo 安装记录 机器人仿真平台 Gazebo 简介 多机器人路径规划问题(Multi-Agent Path Finding, MAPF)简介 Python exifread 读取修改过的 jpeg 信息错误问题修复 3D 坐标系变换的理解 3D 旋转矩阵基本概念 MongoDB Compass 介绍 Python 环境管理工具 uv Flutter 开发指南 Snipaste 安装下载与黑屏问题解决方案 全局路径规划算法记录
Halcon 语法
Yiwei Zhang · 2022-12-13 · via 又见苍岚

本文最后更新于:2024年5月11日 下午

本文记录 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

参考资料

文章链接:
https://www.zywvvd.com/notes/coding/halcon/halcon-grammar/halcon-grammar/


“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付