3 个版本
0.1.2 | 2024 年 6 月 4 日 |
---|---|
0.1.1 | 2024 年 5 月 13 日 |
0.1.0 | 2024 年 5 月 13 日 |
#1 in #upc
12KB
283 行
grocer
一个简单的 Rust 库,用于从图像中读取 UPC 条形码。
用法
将 grocer 添加到您的 Cargo.toml
文件。
[dependencies]
grocer = "0.1.2"
示例
使用最少的代码即可从图像文件中读取条形码。
use grocer;
fn main() {
let scan_settings = grocer::ScannerSettings { high_speed: false, };
let barcode: grocer::Barcode = grocer::scan_upc("images/image.png", scan_settings);
println!("Code: {}", barcode.code);
}
为什么这么慢?
扫描可能需要一段时间,主要是因为条形码可能位于图像的任何位置,并且需要首先找到它。整个图像都会被扫描,并且会检查每个白色区域是否是条形码左侧的起始静区。
要修复它,目前可以通过使用 --release 编译来加快速度。
我正在努力添加一些功能,允许用户在需要时为了速度降低可靠性。例如,如果您知道条形码始终位于图像的中心,则更改设置可以允许非常快速的扫描,因为查找条形码更容易。
帮助
帮助我!如果您有无法使用此库扫描的条形码图像,请告诉我!请将任何无法扫描的图像发送给我([email protected])。我想要确保这个库能够在合理范围内处理所有条形码,并且广泛测试各种条形码将非常有帮助。我已经拍了大量的条形码照片,并用 grocer 进行了测试。我大部分都取得了成功,但我发现一个绿色条形码有一些问题,因此我正在努力使黑白边界自动调整以捕获更多彩色印刷的条形码。
如果您想将条形码发送给我,请确保它是受支持的格式(目前为 UPC-A),并将电子邮件发送到 [email protected]。
谢谢!
未来 / 进行中
- 适当的错误处理
- 在扫描过程中调整灰度配置文件的扫描,以扫描不同颜色制作的条形码
- 更广泛的功能和定制,能够禁用这些功能
- 支持实时视频流以从连接到计算机的摄像头扫描条形码
- 支持更广泛的线性条形码(UPC-E、FNSKU、EAN、Pharmacode 等)
- 能够读取垂直旋转的条形码
更改日志
0.1.0:初始版本 - 基本条形码扫描 - 支持UPC-A
0.1.1:更新文档 - 更新了一些文档
0.1.2:重要功能更新 - 更精确的扫描方法 - 设置选择结构 - 返回条形码信息结构 - 拒绝任何错误尺寸的条形码(UPC-A = 12 个字符)
依赖关系
~2.5MB
~52K SLoC