Halcon的编程语法与数据处理——第8讲
1、跟其他语言不完全一致的表达符号
赋值符号 :=
引号 ' ' (一律是单引号)
求商求余 / % (一个整数除以另一个数,如何使商是实型的?即浮点型)
逻辑运算 and or not xor(异或)
逻辑真假 true false
等于 = 和 == 都行
不等于 != 和 # 都行
2、程序控制语法
程序语法与Delphi、VB.Net极为类似。例如:
① for循环
for i := 1 to 10 by 1
……
endfor
② if/else判断
if(……)
……
elseif(……)
……
else
……
endif
③ while循环
while(……)
……
endwhile
break、continue跟其他编程语言一致。
3、常见的Tuple函数运算
min(t) tuple中的最小值
max(t) tuple中的最大值
min2(t1,t2) 求两个值(tuple)中的较小值
max2(t1,t2) 求两个值(tuple)中的较大值
sum(t) 求和
mean(a) 求均值
deviation(a) 标准差( https://www.cnblogs.com/xh6300/p/7413715.html )
sqrt(a) 平方根
deg(a) 将弧度转为角度
rad(a) 将角度转为弧度
real(a) 将整型转为real型
int(a) 将real型转为整型
round(a) 转换为最接近的整数元组
number(v) 将string类型转为number类型
abs(a) 求绝对值
sort(t) 升序排列
更多Tuple的操作请参考:
https://www.cnblogs.com/xh6300/p/6117688.html
可以将下面的例子运行一下,感受一下:
read_image (Image, 'code.png')
create_bar_code_model ([], [], BarCodeHandle)
dev_set_draw ('margin')
**同时查找Code 128码和Code 39码,这种方式消耗的时间只等于只找一种码的时间。
**得到的字符串元组str等于 ['', '']
find_bar_code (Image, SymbolRegions, BarCodeHandle, ['Code 128','Code 39'], str) num := |str|
tuple_strlen (str, Length) //获得字符串元组中每个字符串的长度,[6,12] A0 := Length[] //等于6 A1 := Length[] //等于12 AA := A0 + A1 //等于18 B0 :=str[] //得到的仍是一个字符串,'123456' B0_int :=number(str[]) //貌似没有字符串转int类型,不过可以转成number类型,123456 aa := + B0_int //转为数字可以进行四则运算了,123456 + 3 = 123459 i :=[,] //这里创建的是一个整型元组 i0 := i[] //等于590 *数据转字符串
aa := + ''
4、四舍五入、取整、有效数字以及和字符串之间的转换
https://www.cnblogs.com/xh6300/p/10027998.html
5、数据排序算子
tuple_sort — Sort the elements of a tuple in ascending order.
tuple_sort_index — Sort the elements of a tuple and return the indices of the sorted tuple.(对元组的元素进行(升序)排序,并返回排序后的元组的索引(相对于输入的tuple)。)
https://www.cnblogs.com/xh6300/p/6417801.html
Halcon的编程语法与数据处理——第8讲的更多相关文章
- 完美解决HALCON C#编程目标平台冲突问题
完美解决HALCON C#编程目标平台冲突问题 楼主# 更多发布于:2016-11-23 10:06 背景: 目标机器工控机使用11.0.1 32位Halcon 原因你懂的.开发环境Win ...
- linux —— shell 编程(编程语法)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...
- Linux Shell 编程语法
原文地址:http://www.cnblogs.com/fhefh/archive/2011/04/13/2014967.html.感谢作者的无私分享 编写代码 在计划好要程序干什么以及如何使用程序的 ...
- 【转】剖析异步编程语法糖: async和await
一.难以被接受的async 自从C#5.0,语法糖大家庭又加入了两位新成员: async和await. 然而从我知道这两个家伙之后的很长一段时间,我甚至都没搞明白应该怎么使用它们,这种全新的异步编程模 ...
- [C#]剖析异步编程语法糖: async和await
一.难以被接受的async 自从C#5.0,语法糖大家庭又加入了两位新成员: async和await. 然而从我知道这两个家伙之后的很长一段时间,我甚至都没搞明白应该怎么使用它们,这种全新的异步编程模 ...
- Python面向切面编程-语法层面和functools模块
1,Python语法层面对面向切面编程的支持(方法名装饰后改变为log) __author__ = 'Administrator' import time def log(func): def wra ...
- C# Halcon混合编程中遇到的问题(一)
目标平台 安装64位的halcon的情况下,目标平台必须使用x64而不能使用x86 目标框架 不能使用.Net Framework Client版本,有一些必须的程序集会缺失,测试使用.Net Fra ...
- Dart编程语法
语法定义了一组用于编写程序的规则.每种语言规范都定义了自己的语法.Dart语法有如下内容组成: 变量和运算符 类 函数 表达式和代码块 判断和循环结构 注释 库和包 类型定义 数据结构表示:集合/泛型 ...
- 程序设计入门——C语言 第8周编程练习 2GPS数据处理(6分)
题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine ...
随机推荐
- Spark standalone运行模式
Spark Standalone 部署配置 Standalone架构 手工启动一个Spark集群 https://spark.apache.org/docs/latest/spark-standalo ...
- 关于Mongodb的全面总结
MongoDB的内部构造<MongoDB The Definitive Guide> MongoDB的官方文档基本是how to do的介绍,而关于how it worked却少之又少,本 ...
- windows 和 Linux 安装rabbitmq
windows 安装 rabbitmq 1,安装erlang 点击进入官网下载:http://erlang.org/download/ 2.安装rabbitmq 点击进入官网下载:http://www ...
- mysql 更新(九) pymysql模块的使用
16-pymysql模块的使用 本节重点: pymysql的下载和使用 execute()之sql注入 增.删.改:conn.commit() 查:fetchone.fetchmany.fetch ...
- UML 中关系图的解说
最近在教软件工程项目实践,就又仔细了解了下UML中各种关系的意义,虽然有点简单,但是有些概念还是经常被混淆的,写在这里是为了加深印象. 关系列表: 继承关系(Generalization): 实现关系 ...
- Executor框架(二)Executor 与 ExecutorService两个基本接口
一.Executor 接口简介 Executor接口是Executor框架的一个最基本的接口,Executor框架的大部分类都直接或间接地实现了此接口. 只有一个方法 void execute(Run ...
- php使用tcpdf实现在线PDF功能
今天看书,发现有个例子就是实现php生成pdf格式文件的例子,所以扩展了下百度了下 找了个tcpdf Git上有地址,如果感冒自行下载 https://github.com/tecnickcom/tc ...
- OpenCL 设备队列
▶ 按书上写的设备队列的代码,需要 OpenCL2.0 的平台和设备,先把代码堆上来 ● 程序主要功能:用主机上的数组 Ahost 和 Bhost 创建设备缓冲区 Adevice 和 Bdevice, ...
- 比较完整的URL验证
转自:http://wuchaorang.2008.blog.163.com/blog/static/4889185220135279223253/ function IsURL(str_url){v ...
- Oracle JOB简例
JOB declare jobno number; begin dbms_job.submit( jobno, 'insert into tmptable1 values(1,1);', to_dat ...