名称
get_image_type
— 返回图像的类型。
签名
get_image_type(Image : : : Type)
描述
get_image_type
算子用于返回输入图像的类型(例如 'byte'
、'int2'
、'uint2'
等)。
注意:对于多通道图像,仅返回第一个通道的类型。
执行信息
- 支持的计算设备:支持在计算设备上运行。
- 多线程类型:可重入(可与非独占算子并行执行)。
- 多线程范围:全局(可从任何线程调用)。
- 并行化处理:不适用。
参数说明
-
Image
(输入参数)- 类型:(多通道)图像数组
- 支持类型:
byte
、direction
、cyclic
、int1
、int2
、uint2
、int4
、int8
、real
、complex
、vector_field
- 描述:输入的图像。
-
Type
(输出参数)- 类型:字符串
- 可选值:
'byte'
、'complex'
、'cyclic'
、'direction'
、'int1'
、'int2'
、'int4'
、'int8'
、'real'
、'uint2'
、'vector_field_absolute'
、'vector_field_relative'
- 描述:返回的图像类型。
返回值
- 默认返回值为
2
(H_MSG_TRUE
)。 - 若输入为空(无图像),行为由
set_system('no_object_result', <Result>)
设置,可能引发异常。
使用场景
功能解析
get_image_type
用于动态获取图像的类型信息。不同图像类型对应不同的数据存储格式,例如:
byte
:8位无符号整数(0-255),适用于普通灰度图。int2
:16位有符号整数,适用于深度图或高动态范围图像。real
:浮点数,适用于需要高精度计算的场景(如滤波、变换)。
典型应用
-
预处理校验
在调用特定算子前(如需要浮点输入的滤波器),先检查图像类型,避免类型不匹配错误。read_image(Image, 'input.png') get_image_type(Image, Type) if (Type != 'real') convert_image_type(Image, ImageReal, 'real') endif
-
多通道处理
若处理多通道图像(如RGB),需注意该算子仅返回第一个通道的类型。
对比与替代
- 替代算子:
get_image_pointer1
可直接获取图像指针,但需手动解析类型。 - 相关算子:
get_image_size
用于获取图像尺寸,常与get_image_type
配合使用。
示例代码
* 读取图像并获取类型
read_image(Image, 'particle.jpg')
get_image_type(Image, Type)
* 输出结果
注意事项
- 多通道限制:若需获取所有通道类型,需拆分通道后逐个调用。
- 性能影响:该算子执行轻量,适合高频调用,但应避免冗余操作。