#image #hdr #merge #camera-image

image-hdr

使用泊松光子噪声估计器实现HDR辐射度估计,从一系列图像中创建HDR图像的实现

7个版本 (4个重大更新)

0.5.0 2024年7月31日
0.4.0 2024年3月24日
0.3.0 2023年8月20日
0.2.0 2023年8月20日
0.1.2 2022年11月30日

多媒体 中排名 42

Download history 121/week @ 2024-07-30 1/week @ 2024-08-06

每月下载量 122

Apache-2.0 和可能 LGPL-3.0-only

25KB
402

image-hdr

这是一个Rust库,实现了不同曝光时间(或分组曝光)拍摄的相机图像的HDR合并算法。它使用https://www.cl.cam.ac.uk/research/rainbow/projects/noise-aware-merging/2020-ppne-mle.pdf中描述的算法,并使用“泊松光子噪声估计器”方程估计每个像素位置的最终辐射度。

当前状态

该库仍处于开发初期阶段,但旨在提供一个可以处理所有HDR合并需求的crate。为此,以下待办事项是最高优先级

  • 色调映射算法实现。
  • 提高性能。

依赖关系

  • image-rs:使用DynamicImage作为计算过程中的输出格式和存储格式。
  • rawloader:支持RAW图像格式。
  • rayon:用于并行进行点计算。
  • kamadak-exif:获取图像的元数据,特别是曝光时间和增益(ISO)。

使用方法

let paths = vec!["src/image1.tif", "src/image2.tif", "src/image3.tif"];
let hdr_merge = image_hdr::hdr_merge_images(paths);
let stretched = apply_histogram_stretch(&fusion);

stretched
    .to_rgba16()
    .save(format!("src/hdr_merged.tiff"))
    .unwrap();

示例

给定以下3个曝光

alt "1/640s" alt "1/4000s" alt "1/80s"

未处理的图像结果

alt "Merged image"

基本处理后的图像(级别和对比度)

alt "Processed image"

贡献

欢迎在 https://github.com/anshap1719/image-hdr 上提交错误报告和拉取请求

引用

依赖关系

~4–6MB
~117K SLoC