函数签名:
scale_image(Image : ImageScaled : Mult, Add : )
功能说明:
缩放图像的灰度值
详细描述:
本算子通过以下变换缩放输入图像:
g' := g * Mult + Add
如果发生数值溢出,则灰度值将被裁剪。注意这种情况在图像类型为cyclic(循环)和direction(方向)时不会发生。
例如,此运算符可用于将图像的灰度值,即区间[GMin,GMax],映射到最大范围[0:255]。
可以使用操作符min_max_gray确定GMin和GMax的值。
注意事项:
注意,由SIMD技术带来的加速在大的、紧凑的输入区域达到顶峰。在极少数情况下,使用SIMD技术的执行时间比不使用SIMD技术的执行时间明显要长,这取决于输入区域以及硬件的性能。在这种情况下,可以通过调用set_system(::'mmx_enable','false':)来避免使用SIMD技术。
并行化:
- 支持OpenCL计算设备
- 多线程类型:可重入(非独占并行运行算子)
- 多线程作用域:全局(可以从任何线程调用)
- 在tuple(元组)级别自动并行
- 在channel(通道)级别自动并行
- 在domain(域)级别自动并行
参数说明:
Image(输入对象)
数据描述 | (多通道)图像(数组) | |
---|---|---|
数据类型 | 对象(byte* / int1* / int2* / uint2* / int4* / int8 / real* / direction* / cyclic* / complex*) *等被计算设备支持的类型 | |
意义 | 需要缩放灰度值的图像 | |
默认值 | ||
建议值 | ||
限制 |
ImageScaled(输出对象)
数据描述 | (多通道)图像(数组) |
---|---|
数据类型 | 对象(byte* / int1* / int2* / uint2* / int4* / int8 / real* / direction* / cyclic* / complex*) *等被计算设备支持的类型 |
意义 | 缩放后的结果图像 |
默认值 | |
建议值 | |
限制 |
Mult(输入控制参数)
数据描述 | 数值 |
---|---|
数据类型 | (real / integer) |
意义 | 灰度值拉伸因子 |
默认值 | 0.01 |
建议值 | 0.001, 0.003, 0.005, 0.008, 0.01, 0.02, 0.03, 0.05, 0.08, 0.1, 0.5, 1.0 |
限制 | |
最小增量 | 0.001 |
建议增量 | 0.1 |
Add(输入控制参数)
数据描述 | 数值 |
---|---|
数据类型 | (real / integer) |
意义 | 灰度偏移 |
默认值 | 0 |
建议值 | 0, 10, 50, 100, 200, 500 |
限制 | |
最小增量 | 0.01 |
建议增量 | 1.0 |
结果:
参数都正确的情况下本算子返回值为2(H_MSG_TRUE)。输入为空的情况下(无可获得的输入图像),该算子的行为通过算子set_system(::'no_object_result',<Result>:)来设置。如有必要,该算子会触发异常。