图像类型
就目前工业领域主流的图像处理工具halcon来讲,有以下几种图像类型:‘byte’, ‘complex’, ‘cyclic’, ‘direction’, ‘int1’, ‘int2’, ‘int4’, ‘int8’, ‘real’, ‘uint2’,具体含义如下图所示。
 ‘byte’ 每像素1字节,无符号 值范围: (0到255)
 ‘int1’ 每像素1字节,有符号 值范围: (-128到127)
 ‘uint2’ 每像素2字节,无符号 值范围: (0到65535)
 ‘int2’ 每像素2字节,有符号 值范围: (-32768到32767)
 ‘int4’ 每像素4字节,有符号 值范围: (-2147483648到2147483647)
 ‘int8’ 每像素8字节,有符号(仅适用于x64系统)
 ‘real’ 每像素4字节,浮点类型,6位有效十进制数字精度 值范围: (-3.4e38到3.4e38)
 ‘complex’ real类型的两个矩阵,向量
 ‘vector_field_relative’ real类型的两个矩阵,向量
 ‘vector_field_absolute’ real类型的两个矩阵,绝对坐标
 ‘direction’ 每像素1字节,无符号 值范围: (0到179),角度除以2
 注意:数值180到254被自动设置为值255。
 ‘cyclic’ 每像素1字节,无符号,循环算术 范围: (0到255)
转换
halcon自转换
相互间的转换可通过convert_image_type算子完成,但盲目转换会导致图像像素值异常。
但为什么要进行转换呢?总结一下,有以下几种原因:
 1.如byte和unit2两种都属于无符号类型,如果涉及到图像相减操作的时候,就需要转为有符号类型,生成真实值。
 2.涉及到遍历图像操作时,如果数组的长度为长宽的积,且超过图像的像素位数最大值,会导致程序报错,必须给数组更大的空间,这就需要进行类型转换。
 3.如果高像素值的图像想转为低像素值的图像,不能直接转换,需通过scale_image算子先将图像像素进行尺度变换。
halcon转C#类型
1.int,double,string,IntPtr
 均通过Htuple类型的变量名加.I(),.D(),.S(),.IP()完成。
引用文章如下:
 halcon最全图像类型格式介绍