我在 .NET 上使用 zxing 取得了巨大成功,并试图获得解码 QR 条码的最佳速度(我有很多事情要做——1.8M)。我正在使用的代码(它的一部分):
// Create Barcode decoder
BarcodeReader q = new BarcodeReader();
q.PossibleFormats = new List<BarcodeFormat>();
q.PossibleFormats.Add(BarcodeFormat.QR_CODE);
q.AutoRotate = true; // Not necessary for QR?
q.TryHarder = false;
// Decode result
Result[] r = q.DecodeMultiple(imageFile);
Run Code Online (Sandbox Code Playgroud)
我的代码更聪明一点,因为它处于循环中,如果第一次没有找到它会更加努力。
有没有办法添加一个区域、ROI 或更小的区域来加速检测?
还有其他提高性能的建议吗?
小智 5
ZXing.Net 用于 QR 码的最快方法如下:
// Create Barcode decoder
BarcodeReader q = new BarcodeReader();
q.PossibleFormats = new List<BarcodeFormat>();
q.PossibleFormats.Add(BarcodeFormat.QR_CODE);
q.AutoRotate = false;
q.TryHarder = false;
// Decode result
Result r = q.Decode(imageFile);
Run Code Online (Sandbox Code Playgroud)
但它只解码找到的第一个二维码。如果不需要,请避免使用 DecodeMultiple。所有其他选项仅应在真正必要时使用。二维码解码不需要 AutoRotate。
如果您的图像真的很大,请在解码前缩小它们。在大多数情况下,不需要分辨率大于 1000 像素的图像。唯一的例外是非常小的二维码。
另一个很好的优化是使用提供灰度图像的图像源。从 RGB 图像计算亮度值需要大量 CPU 周期。最快的选项是 8 位灰度图像。
| 归档时间: |
|
| 查看次数: |
11313 次 |
| 最近记录: |