1个不稳定版本

0.1.0 2022年12月12日

#669 in 图像

MIT 许可证

135KB
541

climage

使用OpenCL的图像处理库的Rust实现。

核心功能

  • 使用 ocl crate
  • 实现算法
    • 灰度转换
    • 高斯模糊
    • 水平/垂直翻转
    • 双边滤波器

入门指南

use climage;
use climage::ImageProc;

fn main() {
    let context = climage::ClContext::default();
    let mut blur = climage::GaussianBlur::new(&context, 2);
    let img = climage::ClImageBuffer::from_readonly_host_image(
        &context,
        image::open("examples/lenna.png").unwrap().into_rgba8(),
    );
    let mut out = climage::ClImageBuffer::from_writeonly_host_image(
        &context,
        image::ImageBuffer::<image::Rgba<u8>, Vec<u8>>::new(img.dimensions().0, img.dimensions().1),
    );
    blur.build_kernel(&img, &mut out).run();
    let mut out_img =
        image::ImageBuffer::<image::Rgba<u8>, Vec<u8>>::new(out.dimensions().0, out.dimensions().1);
    out.data.read(&mut out_img).enq().unwrap();
    out_img.save("examples/lena_blur.png").unwrap();
}

运行示例

cargo run --release --example gaussian_blur

依赖项

~7.5MB
~111K SLoC