9 个版本

0.1.8 2024 年 7 月 23 日
0.1.7 2024 年 7 月 22 日
0.1.5 2024 年 6 月 23 日

#415视频

Download history 416/week @ 2024-06-04 88/week @ 2024-06-11 134/week @ 2024-06-18 24/week @ 2024-06-25 43/week @ 2024-07-02 116/week @ 2024-07-16 230/week @ 2024-07-23 9/week @ 2024-07-30

每月 355 次下载

Apache-2.0 OR BSD-3-Clause

120KB
3.5K SLoC

Rust 中的直方图均衡化

实现了某些 CLAHE(对比度受限自适应直方图均衡化)、AHE(自适应直方图均衡化)和在不同色彩空间中执行的直方图均衡化。

所有方法都可以在

  • YUV(YCgCo 子类型)中始终使用 256 个直方图 bins 来提高性能。
  • HSV
  • HSL
  • CIE L*a*b
  • CIE L*u*v
  • Oklab
  • Jzazbz
  • Oklch

所有色彩空间都有其不同的属性和结果。

没有为灰度图像实现。

示例

clahe_luv_rgb(
    src_bytes,
    stride as u32,
    &mut dst_bytes,
    stride as u32,
    dimensions.0,
    dimensions.1,
    4f32,
    ClaheGridSize::new(8, 8),
    128,
);

如何与 image crate 一起使用

let img = ImageReader::open("assets/asset_1.jpg")
    .unwrap()
    .decode()
    .unwrap();
let dimensions = img.dimensions();
let channels = 3;
let stride = dimensions.0 as usize * channels;
let mut dst_bytes: Vec<u8> = vec![0; stride * dimensions.1 as usize];
let src_bytes = img.as_bytes();
hist_equal_hsv_rgb(
    src_bytes,
    stride as u32,
    &mut dst_bytes,
    stride as u32,
    dimensions.0,
    dimensions.1,
    128,
);
image::save_buffer(
    "converted_eq_hsv.jpg",
    &dst_bytes,
    dimensions.0,
    dimensions.1,
    image::ExtendedColorType::Rgb8,
)
.unwrap();

依赖项

~2.5MB
~57K SLoC