欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 人工智能 > ChatGpt >内容正文

ChatGpt

Halcon基础知识:常规数据、对象数据、对象元组

发布时间:2025/3/21 ChatGpt 76 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Halcon基础知识:常规数据、对象数据、对象元组 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一、说明

        halcon到底有多少数据类型,这是一个相当重要的知识;初学者如果看了几十个程序案例,自然对此感兴趣。本文将介绍两种数据:常规数据,对象数据;以及出现的机会,1)程序一般处理过程,2)调用函数的参数传递;

二、常规数据

2.1 常规数据的类型

byte,  ---  8位无符号数,标准灰度图像的标准编码,基本用于显示,不用于计算。

uint2, ---  16位无符号;标准的灰度图像会用这种类型

int1,     ----  8位有符号;两帧图像的差异会用这种类型

 int2 , ---- 16位有符号;两帧图像的差异会用这种类型

int4 ,  ----- 32位有符号数,两幅灰度图的频谱会用到这种类型;

direction ----8位无符号;图片边缘的梯度方向;边缘梯度会用这种类型;

real  -----32位浮点类型,边缘提取及特定灰度值的轮廓会用到这种类型;

complex ----实数对,每个像素用2个real值;用频率表示图像用这种类型;图片频率分布

cyclic -----8位无符号;给每个颜色分配灰度值

vector_field ----双通道的实数图像,描述X或者Y方向的运动;连续图形的光学流分布。

2.2 常规数据特点

        是数据的最小单元,一般不可分(vector_field 除外)。1 对象数据内包含常规数据 2 函数参数传递时有常规数据 3 元组内包含常规数据

三、对象数据

3.1 图像对象Image

在Halcon中,Image = Channel + Domain(定义域) , 像素点存放在Channel矩阵中,根据ROI来描述Image。

Image相关操作:

输入:从文件、从设备

生成:外部图像数据、空内存区域;

显示:disp_image()图像首通道灰度图;disp_color() 彩色图;disp_channel()某特定通道;disp_obj() 自动判别类别;(用dev_display也行)

缩放:set_part() 设置显示区域;set_part_style() 设置显示参数;

要点说明:

  •  多通道图像,可以是灰度图像或RGB图像 --Multiple channels //
  • ROI区域图像,Arbitrary region of interest //
  • 像素是多数据类型的,这一点很重要,比如傅里叶变换后的复数图像;(int1/2/4,real, complex, direction, cyclic, vector_field)

另外,多种图片类型间使用convert_image_type算子进行转换:

  • convert_image_type(Image:ImageConverted:NewType:)

作用:转换图像数据类型,默认读取的图像时byte类型,此算子能转换成real(实数)图像数据类型。数据类型支持很多NewType:'int1''int2''unit2''unit4''int8''byte''real''direction''cyclic''complex'

3.2 区域对象Regions

以行列坐标形式储存,有广泛的应用,特点是高效,可利用同态算子。比如用阈值对图像分割的结果,其他系统中称为BOLB,AREA等。

3.3 轮廓线对象 (XLD) Extended Line Description

图像均用像素点保存,而像素点是整型的,不连续的,Halcon做了拓展,定义了亚像素(subpixel)的描述几何轮廓的对象:xld,主要用在亚像素测量的背景下,可用于如提取边缘、构建轮廓等等,xld在模板匹配、图形校准等多方面有重要的用途。

说明:

  • 亚像素精度的线和边缘检测(Subpixel accurate line and edge detection)
  • 依据数据结构产生点的表(Generic point list based data structure)
  • 对轮廓,多边形,线等进行操作(Handling of contours, polygons, lines, parallels, etc.)

四、 参数传递

4.1 halcon的函数数据类型两大类

1、图形对象参数(有叫图标变量)Iconic ( image, region, XLD)

2、与控制参数Control (string, integer, real, handle),

在Halcon算子的参数中,参数次序有约定。依次为:输入图形参数、输出图形参数、输入控制参数、输出控制参数;并且其输入参数不会被算子改变。官方手册对系统内算子的参数,要有明确说明,对参数表“x:y:x:y”要有解释。同样,自定义算子也需要约定好参数的顺序。

4.2 控制参数Control

1  String类型变量由单引号’括起来;此外还有一些特殊字符;

2  Boolean型变量包括 true ( = 1 )、 false ( = 0 ) ;不为零的整数将被认为true;但绝大多数的Halcon函数接受字符串型的表达:’true’‘false’,而非逻辑型表达;

3 图像元组:指用图像obj构成的参量,图形元组的下标从1开始

4 控制变量元组:是如下这个样子的

          set_paint( WindowHandle, ['contourline',60,1] )  控制变量元组下标从0开始;

5 句柄:句柄则可以用来描述窗体、文件等等,句柄不能是常量。

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的Halcon基础知识:常规数据、对象数据、对象元组的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。