bee*_*eep 2 image-processing rust
我想使用 crate 将图片转换为纯黑白(例如无灰度)Image,结果应该是具有 0 和 255 RGB 值的图片。
根据文档我写了以下内容:
let img = image::open("photo.jpg").unwrap(); // Load picture
let gray_img = img.grayscale(); // Convert it
// Access a random pixel value
let px = gray_img.get_pixel(0,0);
println!("{:?}", pixel.data); // Print RGB array
Run Code Online (Sandbox Code Playgroud)
这里的问题是,无论我打印什么像素,它都会给我灰度值。那么,有没有一种功能可以将图像转换为纯黑白呢?类似Pillow的 Python 转换函数吗?
以下是如何首先构建灰度图像,然后将其抖动为黑白图像:
use image::{self, imageops::*};
let img = image::open("cat.jpeg").unwrap();
let mut img = img.grayscale();
let mut img = img.as_mut_luma8().unwrap();
dither(&mut img, &BiLevel);
img.save("cat.png").unwrap(); // this step is optional but convenient for testing
Run Code Online (Sandbox Code Playgroud)
您当然应该正确处理错误,而不是仅仅这样做unwrap。