halcon_01_HALCON基础语法变量与数据类型
题目:halcon的数据类型
作者:李黛色
功能:halcon基础语法
个人学习记录,如有错误,欢迎更正。
两类参数:
1、图形参数Iconic (image, region, XLD)
2、控制参数Control (string, integer, real, handle)
0.算子
Halcon算子的参数中,
算子operator:执行特定图像处理任务的函数和命令。
语法,依次为:
(输入图形参数、输出图形参数、输入控制参数、输出控制参数;)
注意:输入参数不会被算子改变。
halcon图像的一些基本数据结构:
1.图形参数
- image : 图像
a. halcon的图像类型,矩阵数据组成,矩阵每个值表示一个像素。
b. 每一个像素包含的信息不同,通常将图像分为:二值图像、灰度图像、rgb图像。
c. image type: Byte complex cyclic direction int1 int2 int4 int8 uint2 real - region : 区域
a. 图像的一块区域
b. 该区域数据由点的坐标组成,表达的意义类似于一个范围
c. 可以用region创建一个感兴趣区域ROI(region of interset)
d. 形状任意,可以含洞,可以不连续点 - xld : 亚像素轮廓
a. 区域的轮廓,region边缘的连续的点组成。
b. 为什么需要亚像素精度,图像Image和区域region这些数据结构是像素精度。
c. 边缘轮廓分两种:
ⅰ. Contours轮廓,是一系列的点连接,点之间的距离大约是一个像素
ⅱ. Polygons多边形,点之间的距离较大,是用最少的线来描述这个轮廓
d. 是一个轮廓函数,不是基于像素,可以精确到像素点内部的一种描述。
对比region 和 xld
region,边是用每个小方块(像素)组成的
xld,线和每个像素(小方块)会有不同的交点,haolcon自己算
2.控制参数
- string : 字符串
a. 单引号包裹 - integer :整数
- float :浮点数
- 布尔值 :true/false 1/0
- real : 实数
- tuple :元组
a. 用于存储图像,一副或多幅图片
b. 其中的数据类型,控制类型:整型、实数型、字符串型,可混搭;
c. 注意:数据为iconic参数类型时,最小索引是1;当为Control参数类型时,最小索引是0。
d. 例子:[1,'abd',3.14,image] - handle : 句柄
a. 标识符ID(唯一),引用某个已打开的资源或管理
b. 用于管理窗口、文件等资源
c. 管理一组复合数据的变量
d. 例子:dev_open_windows() 算法返回窗口句柄
e. 例子:窗口、保存创建的模板、采集相机等均以handle来标识要操作的对象
3.变量声明与赋值
- 变量无需声明
- 直接使用 := 赋值
- 变量名区分大小写
- 首字母不能是数字
- 例子:
a. a := 1
b. b := 'hello'
c. image := read_image()
4.名词注释
图像 :图像的本质是矩阵。
像素 :图像放大到极致后可以看到一个最小的,单色的正方形方块,这叫一个像素。
矩阵 :的每个元素就是该点像素方块的灰度值。
灰度 :表征亮度的量;
灰度值 :灰度0为黑,255为白(0为黑,1为白)。
分辨率 :图像宽高的信息。横向有多少像素点,纵向有多少像素点。
通道 :图像的颜色如何表示?相当于叠图。RGB
亚像素 :
亚像素 Sub Pixel,面阵摄像机的成像面以像素为最小单位。
宏观上,两个像素之间有5.2微米的距离,可以看作是连在一起的。
微观上,它们之间还有无限的更小的东西存在。这个更小的东西我们称它为“亚像素”。
参考文章:
- https://zhuanlan.zhihu.com/p/471507066
- https://blog.csdn.net/zxmyoung/article/details/122238144
- https://blog.csdn.net/laoyao54/article/details/51496065
- https://baike.baidu.com/item/亚像素/7904986
- https://www.qinglite.cn/doc/10076476352491b16
总结:千锤万凿出深山
halcon_01_HALCON基础语法变量与数据类型的更多相关文章
- Java编程基础——常量变量和数据类型
Java编程基础——常量变量和数据类型 摘要:本文介绍了Java编程语言的常量变量和数据类型. 常量变量 常量的定义 一块内存中的数据存储空间,里面的数据不可以更改. 变量的定义 一块内存中的数据存储 ...
- openresty开发系列13--lua基础语法2常用数据类型介绍
openresty开发系列13--lua基础语法2常用数据类型介绍 一)boolean(布尔)布尔类型,可选值 true/false: Lua 中 nil 和 false 为"假" ...
- java(二、基础语法和基本数据类型)
Java 基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一 ...
- Java基础语法和基本数据类型
Java基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作. 对象:对象是类的一个实例,有状态(属性)和行为(方法). 类:类是一个模板,他描述一类对象的行为 ...
- javascript基础语法——变量和标识符
× 目录 [1]定义 [2]命名规则 [3]声明[4]特性[5]作用域[6]声明提升[7]属性变量 前面的话 关于javascript,第一个比较重要的概念是变量,变量的工作机制是javascript ...
- Python基础语法,基本数据类型及相关操作
---恢复内容开始--- python文件 文件开头要有 #!/usr/bin/ python --在linux中是告诉系统phthon的路径是在/usr/bin/ python目录下 ...
- go基础语法-变量定义
1.基础定义 变量类型在变量名后 var a int var s string 2.定义并赋值 var a,b int = 1,2 var s string="abc" 3.类型推 ...
- python基础之变量与数据类型
变量在python中变量可以理解为在计算机内存中命名的一个存储空间,可以存储任意类型的数据.变量命名变量名可以使用英文.数字和_命名,且不能用数字开头使用赋值运算符等号“=”用来给变量赋值.变量赋值等 ...
- typescript基础语法--变量/函数/指令/类
博客地址 :https://www.cnblogs.com/sandraryan/ 要把ts文件引入到html中,首先要转码为js文件. 步骤: 终端运行: npm i -g typescript t ...
- 开发基础 (变量、数据类型、格式化输出、运算符、流程控制、while循环)
一.变量 name = "SmallNine" 等号前面是变量名(标识符),等号后面是变量值 变量的主要作用:就是把程序运算的中间结果临时存到内存里,已备后面的代码继续调用. 变量 ...
随机推荐
- 用AI做了个动态下发微信群二维码应用
微信群的二维码每周都要更新一次,比较麻烦.于是搞了个简单的上传/下发的 Web 应用. 下面是优化前后流程,虽然看似步骤少了一步,但大大节省了时间. 主要功能 常见类型图片上传,支持删除,提供外链访问 ...
- codeup之分数序列求和
Description 有如下分数序列 求出次数列的前20项之和. 请将结果的数据类型定义为double类型. Input 无 Output 小数点后保留6位小数,末尾输出换行. Sample Inp ...
- 极简版闹钟(java)
package javaBasic; import java.awt.Toolkit; import java.awt.event.*; import java.text.SimpleDateForm ...
- 基于ROS2/MoveIt!的工业机械臂控制系统开发全攻略
1. 系统架构设计 1.1 系统组成模块 [Vision System] --> [Perception Node] | | [Gazebo Sim] <--> [ROS2 Cont ...
- Java子类上加lombock注解@Data或者@ToString,日志中不包括父类的属性
问题描述:Java子类上加lombock注解@Data或者@ToString,在翻阅日志的时候,发现不打印父类的属性. 问题分析:@Data在编译时会自动为实体类添加setter.getter和toS ...
- 【mklink】创建符号链接
场景 我通常用这个指令将C盘的文件转移到D盘中,或者是把一定要安装在C盘的软件所占用的空间转移到D盘.但是常常不记得参数和顺序. 指令通用格式 C盘的文件转移到D盘中 假设要把C:\abc\这个文件夹 ...
- 记录第一次公司内部分享:如何基于大模型搭建企业+AI业务
Hello, 大家好,我是程序员海军, 全栈开发 |AI爱好者 | 独立开发. 记录第一次在公司内部分享AI+业务 落地实践. 如今,AI时代带来的无限可能性,很多业务都值得从做一遍. 最近,老大参加 ...
- 手摸手教你从生成CRD到编写自定义控制器
介绍 我们可以使用code-generator 以及controller-tools来进行代码自动生成,通过代码自动生成可以帮我们自动生成 CRD 资源对象,以及客户端访问的 ClientSet.In ...
- Spring Cloud Gateway实现分布式限流和熔断降级
小伙伴们,你们好呀!我是老寇!一起学习学习gateway限流和熔断降级 一.限流 思考:为啥需要限流? 在一个流量特别大的业务场景中,如果不进行限流,会造成系统宕机,当大批量的请求到达后端服务时,会造 ...
- java 分批次读取大文件的三种方法
1. java 读取大文件的困难java 读取文件的一般操作是将文件数据全部读取到内存中,然后再对数据进行操作.例如 Path path = Paths.get("file path&quo ...