解码扫描文档中的条形码

时间:2014-09-22 20:13:25

标签: c# .net zxing

我正在使用ZXing库进行.NET,但我无法从提供的图像中获得结果。 在倒数第二行之后,result设置为null,因为BarcodeReader没有检测到图像中的任何条形码。 我是否有关于如何设置BarcodeReader的东西?

BarcodeReader reader = new BarcodeReader()
{
    AutoRotate = true,
    TryInverted = true,
    Options = new DecodingOptions
    {
        TryHarder = true,
        PureBarcode = true,
        PossibleFormats = new List<BarcodeFormat> { BarcodeFormat.CODE_39 }
    }
};

LuminanceSource source = new ZXing.BitmapLuminanceSource(bitmapImage);
Result result = reader.Decode(source);

Console.WriteLine(result == null ? "Nothing" : result.Text);

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

ZXING不进行任何图像处理。它只是使用内部算法从图像中采样某些点。 (在二维条形码中,一组点可能会在中心线从左到右读取)

如果图像的分辨率太低,则显示的图像太低。 ZXING很可能没有认识到它。

您可以做的是编写自己的图像二值化方法。一种简单的方法是设置一个阈值,如果像素范围为0-255,则可能为128。将上面的所有值分配为255,将所有值分别设置为0.后处理后的图像可能更适合ZXING识别。