zxing.net QR解码的优化

时间:2013-08-02 02:41:16

标签: zxing

我在.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或更小的区域来加速检测?

提高绩效的其他任何建议?

1 个答案:

答案 0 :(得分:2)

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);

但它只解码了第一个找到的二维码。 如果您不需要,请避免使用DecodeMultiple。 所有其他选项只应在必要时使用。 QR码解码不需要AutoRotate。

如果您的图像非常大,请在解码之前缩小它们。 对于大多数情况,不需要分辨率大于1000像素的图像。 唯一的例外是非常小的QR码。

另一个很好的优化是使用提供灰度图像的图像源。 从中计算亮度值需要很多CPU周期 RGB图像。最快的选择是8位灰度图像。