我正在使用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);
答案 0 :(得分:0)
ZXING不进行任何图像处理。它只是使用内部算法从图像中采样某些点。 (在二维条形码中,一组点可能会在中心线从左到右读取)
如果图像的分辨率太低,则显示的图像太低。 ZXING很可能没有认识到它。
您可以做的是编写自己的图像二值化方法。一种简单的方法是设置一个阈值,如果像素范围为0-255,则可能为128。将上面的所有值分配为255,将所有值分别设置为0.后处理后的图像可能更适合ZXING识别。