HALCON算子【图像操作】get_image_type

名称

get_image_type — 返回图像的类型。
在这里插入图片描述

签名

get_image_type(Image : : : Type)

描述

get_image_type 算子用于返回输入图像的类型(例如 'byte''int2''uint2' 等)。
注意:对于多通道图像,仅返回第一个通道的类型。

执行信息

  • 支持的计算设备:支持在计算设备上运行。
  • 多线程类型:可重入(可与非独占算子并行执行)。
  • 多线程范围:全局(可从任何线程调用)。
  • 并行化处理:不适用。

参数说明

  1. Image(输入参数)

    • 类型:(多通道)图像数组
    • 支持类型bytedirectioncyclicint1int2uint2int4int8realcomplexvector_field
    • 描述:输入的图像。
  2. Type(输出参数)

    • 类型:字符串
    • 可选值'byte''complex''cyclic''direction''int1''int2''int4''int8''real''uint2''vector_field_absolute''vector_field_relative'
    • 描述:返回的图像类型。

返回值

  • 默认返回值为 2H_MSG_TRUE)。
  • 若输入为空(无图像),行为由 set_system('no_object_result', <Result>) 设置,可能引发异常。

使用场景

功能解析

get_image_type 用于动态获取图像的类型信息。不同图像类型对应不同的数据存储格式,例如:

  • byte:8位无符号整数(0-255),适用于普通灰度图。
  • int2:16位有符号整数,适用于深度图或高动态范围图像。
  • real:浮点数,适用于需要高精度计算的场景(如滤波、变换)。

典型应用

  1. 预处理校验
    在调用特定算子前(如需要浮点输入的滤波器),先检查图像类型,避免类型不匹配错误。

    read_image(Image, 'input.png')
    get_image_type(Image, Type)
    if (Type != 'real')
        convert_image_type(Image, ImageReal, 'real')
    endif
    
  2. 多通道处理
    若处理多通道图像(如RGB),需注意该算子仅返回第一个通道的类型。

对比与替代
  • 替代算子get_image_pointer1 可直接获取图像指针,但需手动解析类型。
  • 相关算子get_image_size 用于获取图像尺寸,常与 get_image_type 配合使用。

示例代码

* 读取图像并获取类型
read_image(Image, 'particle.jpg')
get_image_type(Image, Type)
* 输出结果

注意事项

  • 多通道限制:若需获取所有通道类型,需拆分通道后逐个调用。
  • 性能影响:该算子执行轻量,适合高频调用,但应避免冗余操作。