我正在尝试在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);
谢谢
答案 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
中的代码希望这有助于某人。