当前位置: 首页 > news >正文

1. halcon基础语言语法

目录

1. 注释

2. 数据类型

1. 图像变量

2. 控制变量

3. 变量的使用

  1. 在halcon

2. 在c#

4. 运算符

 1. 算数运算符

2. 关系运算符

3. 逻辑运算符

5. 选择结构

6. 快捷键

7. 循环结构

8. 数组(集合)

9. 数组集合运算

10. 字符串算子

11. 文件

12.冒泡排序


1. 注释

  1. 符号*

  2. F4 批量注释 F3取消注释

  3. if(false)

2. 数据类型

1. 图像变量

  1. 图像 image

  2. 区域 region

  3. 轮廓 xld

2. 控制变量

 1. 基础数据类型

 2. 字符串 ''

3. 变量的使用

  1. 在halcon

 1. 不需要定义

  2. 没有数据类型, 自动判断该数据的类型

 3. 不需要分号结束

  4. 赋值 :=

    data1 := 10data2 := 3.14data3 := 'hello world'data4 := false

2. 在c#

 1. 区别

4. 运算符

 1. 算数运算符

     + - * / %

    data1 := 10data2 := 20data3 := data1 + data2data4 := data1 - data2data5 := data1 * data2data6 := data1 / data2data7 := data1 % data2

2. 关系运算符

  1.> >= < <= = !=(#)

 2. 逻辑真(true/1)假(false/0)

    data1 := 10data2 := 10data3 := data1 > data2//data1大于data2是假,所以data3等于0data4 := data1 >= data2data5 := data1 < data2data6 := data1 <= data2data7 := data1 = data2//data1等于data2是真,所以data7等于1data8 := data1 != data2data9 := data1 # data2

3. 逻辑运算符

 1. and 

 2. or

3. not

    data1 := 1data2 := 0data3 := data1 and data2//逻辑与(两个为真才为真)data4 := data1 or data2 //逻辑或(有一个真就是真)data5 := not data1//逻辑非(真转假)

5. 选择结构

1. if

 2. if else

3. if elseif elseif

 4. switch case 

   data1 := 1data2 := 0if (data1)endifif (data1)elseendifif (data1)elseif(data2)endifswitch (data1)case 1:breakcase 2:breakcase 3:breakdefault:breakendswitch

6. 快捷键

tab tab enter

7. 循环结构

1. while

2. for

  data1 := 0while (data1 < 100)data1 := data1 + 10 endwhiledata2 := 1rst := 0for Index := 1 to 5 by 1//to是小于等于,前面是i=1,从1 开始,后面是1++rst := data2 * Indexendforfor Index1 := 1 to 5 by 1if (Index1 = 2)continue//结束本次循环break//结束本次循环endifendforfor Index2 := 1 to 5 by 1for Index3 := 1 to 5 by 1for Index4 := 1 to 5 by 1endforendforendfor

8. 数组(集合)

 *数组arry := []//定义一个数组arry1 := [1,2,3]//数组有三个数据arry2 := ['hello','hi','ok']data1 := arry1[0]//下标法,取第0个数据,data1=1*集合arry1 := [arry1,10]//在arry1的后面加10arry1 := [20,arry1]//在arry1的前面面加20rows := []cols := []for Index := 1 to 5 by 1a :=  arry1[Index-1]  //五个数据,下标应该是四rows := [rows, Index]//往rows里面循环添加数据cols := [cols, Index*2]//往cols里面循环添加数据endfor

9. 数组集合运算

1. tuple_

    Arry := [1,3,5,7,9,2,4,6,8,10,8,4,2,1]//数组里面存的tuple_min (Arry, Min)//从Arry里面查找并且输出最小值 tuple_max (Arry, Max)//从Arry里面查找并且输出最大值tuple_mean (Arry, Mean)//从Arry里面计算并且输出平均值tuple_median (Arry, Median)//从Arry里面查找并且输出中间值tuple_sort (Arry, Sorted)//从Arry里面查找并且输出排序(从小到大)tuple_uniq (Sorted, Uniq)//从Arry里面查找并且删除掉重复的*查询tuple_find (Arry, 5, Indices)//从Arry里面查找5,如果找到,Indices会显示5的下标,如果没有会显示-1tuple_find (Arry, 1, Indices1)//如果查出两个同样的数字,会显示两个下标tuple_find_first (Arry, 1, Index)//查找第一个1的下标(从前往后找)tuple_find_last (Arry, 1, Index1)//查找第一个1的下标(从后往前找)tuple_length (Arry, Length)//查找数组有多少个下标 (第一种方法)  for Index2 := 1 to Length by 1endforLen := |Arry|//查找数组有多少个下标,|Arry|是数组的长度 (第二种方法)  for Index3 := 1 to |Arry| by 1endfor*插入(增加)tuple_insert (Arry, 0, 100, Extended)//在Arry的第【0】个位置插入100tuple_insert (Arry, 1, [100,200], Extended1)//在Arry的第【1】个位置插入100,200*删除tuple_remove (Arry, 0, Reduced)//删除Arry的第【0】个数组*修改tuple_replace (Arry, 0, 30, Replaced)//在Arry把下标【0】删除,并且替换成30

10. 字符串算子

1. tuple_str_

 data1 := 1.2365678tuple_string (data1, '.2f', String)//把data1保留“.2f”计算保留小数点的后两位data2 := 'hello world'tuple_strlen (data2, Length)tuple_substr (data2, 6, 10, Substring)tuple_split (data2, ' ', Substrings)

11. 文件操作

打开文件,写入文本 
open_file ('lw.txt', 'append', FileHandle)fwrite_string (FileHandle, 'hallo1' + '\n')fwrite_string (FileHandle, '你好1' + '\n')close_file (FileHandle)
 读取文件中内容open_file ('lw.txt', 'input', FileHandle1)Lines := []IsEOF := 0while (IsEOF != 1)fread_string (FileHandle1, OutString, IsEOF)if (IsEOF)breakendifLines := [Lines, OutString]endwhileclose_file (FileHandle1)

12.冒泡排序

Arry := [1,3,5,7,9,2,4,6,8,10]MaxData := Arry[0]for Index := 1 to |Arry| by 1if (Arry[Index-1] > MaxData)MaxData := Arry[Index-1]endifendforfor Index1 := 1 to |Arry|-1 by 1for Index2 := 1 to |Arry|-1- Index1 by 1if (Arry[Index2-1] > Arry[Index2 + 1-1])Temp := Arry[Index2-1]Arry[Index2-1] := Arry[Index2 + 1 - 1]Arry[Index2 + 1 - 1] := Tempendifendforendfor

相关文章:

  • 数据结构 二叉树理论、递归理论与快速排序理论 6.19
  • 零基础指南:利用Cpolar内网穿透实现Synology Drive多端笔记同步
  • JVM(6)——详解标记-清除算法
  • 《李沐读论文》系列笔记【更新中】
  • Three.js WebGL2.0深度应用:解锁图形渲染新极限
  • 【图表示例】元素-组合
  • HashMap算法高级应用实战:频率类子数组问题的5种破解模式
  • 【Java并发】线程池
  • 191. 位1的个数
  • Python爬虫(七):PySpider 一个强大的 Python 爬虫框架
  • 通俗解释:编码器与解码器
  • Cursor Pro取消500次请求限制,无限用的体验更好了吗?
  • ntkrnlmp!_SHARED_CACHE_MAP结构中的成员DirtyPages=0x6(5)的一个例子和成员BcbList链表节点的数量一致
  • Git版本控制详细资料
  • MATLAB实现Gardner位同步算法
  • Docker 镜像与容器的区别
  • ROS学习之服务通信
  • Android11 Settings详解
  • 【统计术语】
  • Dart 类型系统与 GetX 类型写法完整指南
  • 广州建设工程中心网站/公司网站制作
  • 哪家网站建设服务好/网站怎么打开
  • 网站维护提示/武汉网站制作
  • 做新媒体广告的网站/石家庄网站建设培训
  • 用爱站工具包如何做网站地图/下载百度极速版
  • 代理注册公司服务/济南seo怎么优化