7 个稳定版本
1.4.0 | 2023年11月14日 |
---|---|
1.3.1 | 2022年5月25日 |
1.2.0 | 2022年5月25日 |
1.1.1 | 2021年5月8日 |
1.0.0 | 2021年4月11日 |
#501 在 算法 中
每月43次下载
13KB
218 行代码
Lutz
这是 R. K. 鲁茨的 "实时数字化图像分析算法" 的 Rust 实现。
它是一个单遍算法,用于 连通分量标记,可以在二值(单色)图像中找到 8 连接的对象。
使用方法
Crate 需要用户实现其 lutz::Image
trait。一个可能的实现是一个封装了 image::GrayImage
类型的结构体
struct Image {
img: image::GrayImage,
threshold: u8,
}
impl lutz::Image for Image {
fn width(&self) -> u32 {
self.img.width()
}
fn height(&self) -> u32 {
self.img.height()
}
fn has_pixel(&self, x: u32, y: u32) -> bool {
self.img.get_pixel(x, y).0[0] > self.threshold
}
}
一旦构建,应将此类图像的引用传递给 lutz
函数。它将返回一个检测到的对象的迭代器,每个对象表示为包含其像素坐标的 Vec<Pixel>
for obj_pixels in lutz::lutz(&img) {
println!("{:?}", obj_pixels);
}
依赖项
~0.4–0.8MB
~18K SLoC