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

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

我正在尝试读取 USB 摄像头获取的图像中的二维码。 在其他帖子中,我读到最好的开源库是 ZXing。

如果二维码来自数字生成的图像,则库工作正常,但如果二维码来自图像由相机获取的真实情况,则解码库会遇到一些困难。

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

您知道一些参数可以更好地设置阅读器吗? 或者在阐述之前添加一些过滤器到图像?

例如:

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

谢谢

最佳答案

经过多次测试,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 中的代码

希望这对某人有帮助。

关于C# 使用 ZXING.NET 解码真实图像中的 QRCODE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38768596/

相关文章:

c# - 用于 IEnumerable<string> 的 Visual Studio 可视化工具

c# - 是否在垃圾回收期间调用了所有终结器?

python - SJ4000 + OpenCV + Raspberry Pi 图像处理

react-native - 允许我扫描 QRCode 的软件包?

php - 使用php生成二维码

c# - if 语句可以与使用模式匹配的变量赋值相结合吗?

c# - 正则表达式十进制范围表达式。负值到正值

c# - 霍夫变换问题

algorithm - 如何在opencv中的平滑图像中插入孔洞?

java - 如何在 JavaSE/EE 中使用笔记本电脑摄像头和 Zxing 读取二维码?