Back to Zxing

Class FinderPatternFinder

docs/apidocs/com/google/zxing/qrcode/detector/FinderPatternFinder.html

latest6.3 KB
Original Source

Package com.google.zxing.qrcode.detector

Class FinderPatternFinder

java.lang.Object com.google.zxing.qrcode.detector.FinderPatternFinder

Direct Known Subclasses:MultiFinderPatternFinder


public class FinderPatternFinderextends Object

This class attempts to find finder patterns in a QR Code. Finder patterns are the square markers at three corners of a QR Code.

This class is thread-safe but not reentrant. Each thread must allocate its own object.

Author:Sean Owen

Field Summary

Fields

Modifier and Type

Field

Description

protected static final int

MAX_MODULES

protected static final int

MIN_SKIP

Constructor Summary

Constructors

Constructor

Description

FinderPatternFinder(BitMatrix image)

Creates a finder that will search the image for three finder patterns.

FinderPatternFinder(BitMatrix image, ResultPointCallback resultPointCallback)

Method Summary

All MethodsStatic MethodsInstance MethodsConcrete MethodsDeprecated Methods

Modifier and Type

Method

Description

protected final void

clearCounts(int[] counts)

Deprecated.

protected static void

doClearCounts(int[] counts)

protected static void

doShiftCounts2(int[] stateCount)

protected static boolean

foundPatternCross(int[] stateCount)

protected static boolean

foundPatternDiagonal(int[] stateCount)

protected final BitMatrix

getImage()

protected final List<FinderPattern>

getPossibleCenters()

protected final boolean

handlePossibleCenter(int[] stateCount, int i, int j)

This is called when a horizontal scan finds a possible alignment pattern.

protected final boolean

handlePossibleCenter(int[] stateCount, int i, int j, boolean pureBarcode)

Deprecated. only exists for backwards compatibility

protected final void

shiftCounts2(int[] stateCount)

Deprecated.

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

MIN_SKIP

protected static final int MIN_SKIP See Also: - Constant Field Values

MAX_MODULES

protected static final int MAX_MODULES See Also: - Constant Field Values

Constructor Details

FinderPatternFinder

public FinderPatternFinder(BitMatrix image)

Creates a finder that will search the image for three finder patterns.

FinderPatternFinder

public FinderPatternFinder(BitMatrix image, ResultPointCallback resultPointCallback)

Method Details

getImage

protected final BitMatrix getImage()

getPossibleCenters

protected final List<FinderPattern> getPossibleCenters()

foundPatternCross

protected static boolean foundPatternCross(int[] stateCount) Parameters:stateCount - count of black/white/black/white/black pixels just readReturns:true iff the proportions of the counts is close enough to the 1/1/3/1/1 ratios used by finder patterns to be considered a match

foundPatternDiagonal

protected static boolean foundPatternDiagonal(int[] stateCount) Parameters:stateCount - count of black/white/black/white/black pixels just readReturns:true iff the proportions of the counts is close enough to the 1/1/3/1/1 ratios used by finder patterns to be considered a match

clearCounts

@Deprecated protected final void clearCounts(int[] counts)

Deprecated.

shiftCounts2

@Deprecated protected final void shiftCounts2(int[] stateCount)

Deprecated.

doClearCounts

protected static void doClearCounts(int[] counts)

doShiftCounts2

protected static void doShiftCounts2(int[] stateCount)

handlePossibleCenter

@Deprecated protected final boolean handlePossibleCenter(int[] stateCount, int i, int j, boolean pureBarcode)

Deprecated. only exists for backwards compatibility

Parameters:stateCount - reading state module counts from horizontal scani - row where finder pattern may be foundj - end of possible finder pattern in rowpureBarcode - ignoredReturns:true if a finder pattern candidate was found this timeSee Also: - handlePossibleCenter(int[], int, int)

handlePossibleCenter

protected final boolean handlePossibleCenter(int[] stateCount, int i, int j)

This is called when a horizontal scan finds a possible alignment pattern. It will cross check with a vertical scan, and if successful, will, ah, cross-cross-check with another horizontal scan. This is needed primarily to locate the real horizontal center of the pattern in cases of extreme skew. And then we cross-cross-cross check with another diagonal scan.

If that succeeds the finder pattern location is added to a list that tracks the number of times each location has been nearly-matched as a finder pattern. Each additional find is more evidence that the location is in fact a finder pattern center

Parameters:stateCount - reading state module counts from horizontal scani - row where finder pattern may be foundj - end of possible finder pattern in rowReturns:true if a finder pattern candidate was found this time