C# Class zxingwp7.common.HybridBinarizer

This class implements a local thresholding algorithm, which while slower than the GlobalHistogramBinarizer, is fairly efficient for what it does. It is designed for high frequency images of barcodes with black data on white backgrounds. For this application, it does a much better job than a global blackpoint with severe shadows and gradients. However it tends to produce artifacts on lower frequency images and is therefore not a good general purpose binarizer for uses outside ZXing. This class extends GlobalHistogramBinarizer, using the older histogram approach for 1D readers, and the newer local approach for 2D readers. 1D decoding using a per-row histogram is already inherently local, and only fails for horizontal gradients. We can revisit that problem later, but for now it was not a win to use local blocks for 1D. This Binarizer is the default for the unit tests and the recommended class for library users.
Inheritance: GlobalHistogramBinarizer
Exibir arquivo Open project: henningms/zxing2.0-wp7 Class Usage Examples

Public Methods

Method Description
HybridBinarizer ( LuminanceSource source )
createBinarizer ( LuminanceSource source ) : Binarizer

Private Methods

Method Description
binarizeEntireImage ( ) : void
calculateBlackPoints ( sbyte luminances, int subWidth, int subHeight, int stride ) : int[][]
calculateThresholdForBlock ( sbyte luminances, int subWidth, int subHeight, int stride, int blackPoints, BitMatrix matrix ) : void
threshold8x8Block ( sbyte luminances, int xoffset, int yoffset, int threshold, int stride, BitMatrix matrix ) : void

Method Details

HybridBinarizer() public method

public HybridBinarizer ( LuminanceSource source )
source LuminanceSource

createBinarizer() public method

public createBinarizer ( LuminanceSource source ) : Binarizer
source LuminanceSource
return Binarizer