C#使用ZXING.NET在真实图像中解码QRCODE

时间:2016-08-04 13:23:20

标签: c# computer-vision qr-code zxing decoding

我正在尝试在usb相机获取的图像中读取QR码。 在其他帖子中,我读过最好的开源库是ZXing。

如果qrcode来自数字生成的图像,则库可以正常工作,但如果qrcode来自真实的情况,其中图像是由相机获取的,则解码库有一些困难。

获取的图像受到一些眩光,代码变形或对比度慢的干扰。

你知道一些参数来更好地设置读者吗? 或者在细化之前添加一些过滤器来添加到图像中?

例如:

BarcodeReader reader = new BarcodeReader();

reader.AutoRotate = true;
reader.Options.TryHarder = true;
reader.Options.PureBarcode = false;
reader.Options.PossibleFormats = new List<BarcodeFormat>();
reader.Options.PossibleFormats.Add(BarcodeFormat.QR_CODE);

var result = reader.Decode(image);

谢谢

1 个答案:

答案 0 :(得分:0)

经过多次测试后,300dpi扫描图像的最佳效果如下:

//use gaussian filter to remove noise
var gFilter = new GaussianBlur(2);
image = gFilter.ProcessImage(image);

var options = new DecodingOptions { PossibleFormats = new List<BarcodeFormat> { BarcodeFormat.QR_CODE }, TryHarder = true };

using (image)
{
    //use GlobalHistogramBinarizer for best result
    var reader = new BarcodeReader(null, null, ls => new GlobalHistogramBinarizer(ls)) { AutoRotate = false, TryInverted = false, Options = options };
    var result = reader.Decode(image);
    reader = null;

   return result;
}`

对于高斯滤波器,我使用http://www.cnblogs.com/Dah/archive/2007/03/30/694527.html

中的代码

希望这有助于某人。