`arrayfire::Array` 的转换

Casting of `arrayfire::Array`

我正在使用 arrayfire crate 打开带有 af::load_image 的图像。这给了我一个 f32 数组,我可以对其进行一些处理。完成后,我想使用 af::save_image:

将其保存为 u8 图像
extern crate arrayfire as af;

fn main() {
    let im = af::load_image("image".into(), false);
    //let im2: af::Array = im.cast(); // Error: cannot infer type for T
    //let im2: af::Array<DType::U8> = im.cast(); // Error: expected no type arguments
}

我不知道如何将数组转换为 u8 类型。我查看了 from 方法,但我不知道如何使用它。

cast 的签名是 cast<T: HasAfEnum>(&self) -> Array

Array 类型没有类型参数。 cast 方法有一个。您需要使用 turbofish 语法 ::<_>

cast 方法提供类型参数

let im2 = im.cast::<u8>();