9 个版本
0.1.8 | 2024 年 7 月 23 日 |
---|---|
0.1.7 | 2024 年 7 月 22 日 |
0.1.5 | 2024 年 6 月 23 日 |
#415 在 视频
每月 355 次下载
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