0

OpenCL 中 read_imagef 返回的值在 0 到 1 的范围内,而像素强度范围是从 0 到 255...我想对强度值进行进一步处理以进行仅基于强度值的图像分割(执行的操作就像查找两个强度值之间的差异、排序、查找最小值、改组等)。如何以整数形式获取 0 到 255 范围内的这些值(为方便起见)...?我可以将每个值乘以 255 还是我需要做的其他事情......?

4

1 回答 1

2

read_imagef返回一个float4,可用于使用通道数据类型 UNORM_INT8、UNORM_INT16、SNORM_INT8、SNORM_INT16、HALF_FLOAT 和 FLOAT 创建的图像。转换规则是OpenCL 规范的一部分,在第 8.3.1 节中给出。

要回答你的问题,是的,如果你的图像数据类型是 UNORM_INT8,你可以简单地乘以 255。

GPU 通常使用 UNORM_INT8 比使用 UNSIGNED_INT8 图像更快。

于 2013-03-27T15:50:15.163 回答