#mipmap #crates #subsampling #graphics #computer-vision #pyramid

image-pyramid

一个用于计算图像金字塔的小型库

6个版本 (重大更改)

0.5.1 2024年5月26日
0.4.1 2024年5月19日
0.3.1 2024年5月18日
0.2.2 2024年5月17日
0.1.1 2024年5月16日

#227 in 图像

Download history 334/week @ 2024-05-12 174/week @ 2024-05-19 160/week @ 2024-05-26 22/week @ 2024-06-02 5/week @ 2024-06-09

每月344次下载

GPL-3.0-only

36KB
371 代码行

图像金字塔

Maintenance crates-io api-docs dependency-status

概述

这是一个小的Rust crate,它简化了从用户提供的图像中快速生成图像金字塔的过程。

用法

请参见crates.io页面以获取安装说明,然后检查示例目录以获取示例代码。以下是一个简单的示例,说明如何计算默认金字塔(每个级别的半分辨率高斯)。

use image_pyramid::*;

let image = todo!();
let pyramid = match ImagePyramid::create(&image, None) {
    Ok(pyramid) => pyramid,
    Err(e) => {
        eprintln!("Error creating image pyramid: {}", e);
        return;
    }
};

或者一个稍微复杂一些的示例,说明如何创建带通金字塔,其中每个八度音阶是分辨率的$2\over{3}$,使用三角形(线性)滤波器进行平滑。

use image_pyramid::*;

let image = todo!();
let params = ImagePyramidParams {
    scale_factor: (2.0 / 3.0).into_unit_interval().unwrap(),
    pyramid_type: ImagePyramidType::Bandpass,
    smoothing_type: SmoothingType::Triangle
};
let pyramid = match ImagePyramid::create(&image, Some(&params)) {
    Ok(pyramid) => pyramid,
    Err(e) => {
        eprintln!("Error creating image pyramid: {}", e);
        return;
    }
};

《scale_factor》字段是一个《UnitIntervalValue》,必须在区间$(0, 1)$内。创建此类值会产生一个《Result》,如果值无效,将包含错误。

支持

对于问题或错误报告,请打开一个问题,并请随意打开一个PR以提出更改。

贡献

遵循标准Rust约定,并确保为任何新代码添加测试。

依赖项

~10MB
~211K SLoC