类型转换 `arrayfire::Array`

标签 casting rust arrayfire

我正在使用 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有一个方法。您需要为 cast 提供类型参数使用 turbofish 语法的方法 ::<_>

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

关于类型转换 `arrayfire::Array`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47267613/

相关文章:

delphi - 在 UnicodeChar 和 Integer 之间进行类型转换安全吗?

c# - DataTable 将字段值转换为 T

casting - 使用arrayOfNulls时是否可以删除Kotlin中未经检查的类型转换?

vector - 访问 Vec 或切片的最后一个元素

c++ - 如何从 arrayfire 中显式获取线性索引?

c++:也将派生类的重载函数作为参数调用(无需显式强制转换)

rust - 如何使用宏生成编译时唯一整数?

rust - 从 HashMap 或 Vec 返回引用会导致借用超出其所在范围?

opencv - 为什么OpenCV擅长处理大尺度图像的ORB和Harris Keypoints检测?

c++ - 带有条件的 Arrayfire 错误