Options
All
  • Public
  • Public/Protected
  • All
Menu

Class OneDReader

Encapsulates functionality and implementation that is common to all families of one-dimensional barcodes.

author

dswitkin@google.com (Daniel Switkin)

author

Sean Owen

Hierarchy

Implements

Index

Methods

decode

Abstract decodeRow

  • Attempts to decode a one-dimensional barcode format given a single row of an image.

    throws

    NotFoundException if no potential barcode is found

    throws

    ChecksumException if a potential barcode is found but does not pass its checksum

    throws

    FormatException if a potential barcode is found but format is invalid

    Parameters

    • rowNumber: number

      row number from top of the row

    • row: BitArray

      the black/white pixel data of the row

    • Optional hints: Map<DecodeHintType, any>

      decode hints

    Returns Result

    Result containing encoded string and start/end of barcode

Private doDecode

  • We're going to examine rows from the middle outward, searching alternately above and below the middle, and farther out each time. rowStep is the number of rows between each successive attempt above and below the middle. So we'd scan row middle, then middle - rowStep, then middle + rowStep, then middle - (2 * rowStep), etc. rowStep is bigger as the image is taller, but is always at least 1. We've somewhat arbitrarily decided that moving up and down by about 1/16 of the image is pretty good; we try more of the image if "trying harder".

    throws

    NotFoundException Any spontaneous errors which occur

    Parameters

    Returns Result

    The contents of the decoded barcode

reset

  • reset(): void

Static Protected patternMatchVariance

  • patternMatchVariance(counters: Int32Array, pattern: Int32Array, maxIndividualVariance: number): number
  • Determines how closely a set of observed counts of runs of black/white values matches a given target pattern. This is reported as the ratio of the total variance from the expected pattern proportions across all pattern elements, to the length of the pattern.

    Parameters

    • counters: Int32Array

      observed counters

    • pattern: Int32Array

      expected pattern

    • maxIndividualVariance: number

      The most any counter can differ before we give up

    Returns number

    ratio of total variance between counters and pattern compared to total pattern size

Static Protected recordPattern

  • recordPattern(row: BitArray, start: number, counters: Int32Array): void
  • Records the size of successive runs of white and black pixels in a row, starting at a given point. The values are recorded in the given array, and the number of runs recorded is equal to the size of the array. If the row starts on a white pixel at the given start point, then the first count recorded is the run of white pixels starting from that point; likewise it is the count of a run of black pixels if the row begin on a black pixels at that point.

    throws

    NotFoundException if counters cannot be filled entirely from row before running out of pixels

    Parameters

    • row: BitArray

      row to count from

    • start: number

      offset into row to start at

    • counters: Int32Array

      array into which to record counts

    Returns void

Static Protected recordPatternInReverse

  • recordPatternInReverse(row: BitArray, start: number, counters: Int32Array): void

Generated using TypeDoc