#小波 #图像 #分析 #膨胀 #多尺度

程序+库 image-dwt

图像的ATrous离散小波变换实现

9个不稳定版本 (3个破坏性更新)

0.4.1 2024年5月3日
0.4.0 2024年4月29日
0.3.3 2024年4月28日
0.3.0 2024年3月26日
0.1.0 2024年3月20日

#65多媒体


2 个Crates中使用(通过 stardetect

Apache-2.0

20KB
465 代码行

图像-rs的ATrous离散小波变换 (DWT)

本项目提供了图像的ATrous离散小波变换(DWT)算法的实现。ATrous DWT是一种用于信号和图像处理的技巧,特别适用于去噪、压缩和特征提取等任务。

概述

ATrous DWT是离散小波变换(DWT)的一种变体,涉及与滤波器的卷积。它将图像分解成不同的频率子带,允许在多个分辨率下进行分析。此实现支持正向和反向变换。

原因

我正在尝试构建一套Rust工具,以促进图像处理,主要针对深空图像和数据。小波变换和多分辨率分析在这些情况下是非常广泛使用的变换。

使用方法

fn remove_large_scale_structures() {
    let image = image::open("./sample.jpg").unwrap();
    let transform = ATrousTransform::new(&image, 6, B3SplineKernel);

    let recomposed = transform
        .into_iter()
        // Skip pixel scale 0 layer for noise removal
        .skip(1)
        // Only take layers where pixel scale is less than 2
        .filter(|item| item.pixel_scale.is_some_and(|scale| scale < 2))
        // Recompose processed layers into final image
        .recompose_into_image(image.width() as usize, image.height() as usize);

    recomposed.to_rgb8().save("recombined.jpg").unwrap()
}

安装

要在Rust项目中使用此库,请将以下内容添加到您的 Cargo.toml 文件中

[dependencies]
image_dwt = "0.3.2"

依赖项

~6.5MB
~92K SLoC