我在.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);我的代码稍微聪明一点,因为它在一个循环中,如果第一次没有找到它,它会更努力地尝试。
有没有办法添加一个区域、ROI或更小的区域来加快检测速度?
还有没有其他提高性能的建议?
发布于 2013-08-03 05:18:54
使用ZXing.Net处理二维码的最快方法如下:
// 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);但它只解码找到的第一个二维码。如果您不需要DecodeMultiple,请避免使用它。所有其他选项应仅在确实必要时使用。AutoRotate对于二维码解码不是必需的。
如果你的图像真的很大,在解码之前缩小它们。在大多数情况下,不需要分辨率大于1000像素的图像。唯一的例外是非常小的二维码。
另一个很好的优化是使用提供灰度图像的图像源。从RGB图像计算亮度值需要大量的CPU周期。最快的选项是8位灰度图像。
https://stackoverflow.com/questions/18007895
复制相似问题