1 个不稳定版本
0.1.0 | 2022年6月26日 |
---|
704 在 图像 中
125KB
341 行
基于http://blog.ivank.net/fastest-gaussian-blur.html的快速线性时间高斯模糊。
此实现基于https://github.com/fschutt/fastblur。
这些函数在给定(可能是)图像数据的切片上就地模糊,具有任意数量的通道和指定的模糊半径。性能大致为线性时间,并使用与输入切片相同大小的单个分配作为后端存储。
示例
模糊RgbImage
fn blur_fast(rgb_image: &mut image::RgbImage, radius: f32) -> Result<(), blurslice::SliceSizeError> {
let width = rgb_image.width() as usize;
let height = rgb_image.width() as usize;
let samples = rgb_image.as_flat_samples_mut();
blurslice::gaussian_blur_bytes::<3>(samples.samples, width, height, radius)
}
更改
- 通过const泛型支持任意数量的通道
- 生成遍历列表时无分配,使用const泛型栈数组
待办事项
- 支持任意步长,用于对齐数据或垂直图像子切片
- 允许提供后端存储,以允许零分配执行