#文件格式 #读取 #tiff #不同 #查看器 #通用 #热图

libblackbody

Libblackbody是一个用于读取不同热图文件格式的库

6个版本 (破坏性更新)

0.5.0 2021年1月2日
0.4.0 2020年12月31日
0.3.1 2020年12月24日
0.3.0 2020年10月13日
0.1.0 2020年10月12日

#2290 in 解析器实现

EUPL-1.2

535KB
19K SLoC

libblackbody

这是一个库 libblackbody,旨在成为一个通用的热图文件读取库。目前它支持TIFF文件和一些FLIR相机。它被 Blackbody,一个简单的热图查看器使用。

FLIR文件的支持由 flyr 库提供。支持的相机列表可以在项目仓库的README中找到。Tiff文件是通过使用 image-rs/tiff 读取的。

安装

此库可在 crates.io 上获取。通过将其添加到您的Cargo.toml中安装。

使用

在您的文件上调用 Thermogram::from_file

let file_path = "/home/user/FLIR0123.jpg";
let r_thermogram = Thermogram::from_file(&file_path);
match r_thermogram {
    None => println!("Failed opening thermogram {:?}", file_path),
    Some(thermogram) => {
        println!("Successfully opened thermogram {:?}", file_path);
        // Do something with `thermogram`
        // ...
    },
}

文件可以是TIFF或FLIR jpeg。

热图接口

以下列出的是可用且推荐使用的方法。

pub trait ThermogramTrait {
    fn thermal(&self) -> &Array<f32, Ix2>;  // The thermal data
    fn optical(&self) -> &Array<u8, Ix3>>;  // CHECK
    fn identifier(&self) -> &str;  // A uniquely identifying string for this thermogram
    fn render(&self min_temp: f32, max_temp: f32, palette: [[f32; 3]; 256]) -> Array<u8, Ix3>;  // Thermal data render using the given palette
    fn thermal_shape(&self) -> [usize; 2];  // The [height, width] of the thermal data
    fn normalized_minmax(&self) -> Array<f32, Ix2>;  // Thermal data normalized to lie in the range 0.0..=1.0
}

问题跟踪

问题跟踪发生在 Blackbody仓库

依赖项

~16MB
~116K SLoC