Techniques for reading two dimensional code, including maxicode
First Claim
1. A method for determining the presence and location of a MaxiCode symbol bulls-eye and the orientation of the symbol in pixel data obtained by an optical code reader comprising the steps of:
- identifying a candidate center in a run of pixels having a color indicative of the center area of the bulls-eye;
testing the candidate center to determine if adjacent pixel runs have a predetermined amount of mirror symmetry with respect to the candidate center;
locating plural points located radially outward of the identified run which points correspond to an edge of a ring of the MaxiCode bulls-eye;
fitting an ellipse to said located points;
expanding the ellipse outwardly to estimate the location of orientation modules of the MaxiCode; and
determining the orientation of the MaxiCode symbol from information read from the orientation modules.
6 Assignments
0 Petitions
Accused Products
Abstract
The disclosure relates to techniques for determining the presence, orientation and location of features in an image of a two dimensional optical code. The techniques are adapted for use in mapping data in an image pixel plane with grid locations in a grid-based two dimensional code to account for size, rotation, tilt, warping and distortion of the code symbol. Where such a code is a MaxiCode, techniques are disclosed for determining the presence and location of the MaxiCode bulls-eye, orientation modules, primary data modules and secondary data modules.
32 Citations
19 Claims
-
1. A method for determining the presence and location of a MaxiCode symbol bulls-eye and the orientation of the symbol in pixel data obtained by an optical code reader comprising the steps of:
-
identifying a candidate center in a run of pixels having a color indicative of the center area of the bulls-eye;
testing the candidate center to determine if adjacent pixel runs have a predetermined amount of mirror symmetry with respect to the candidate center;
locating plural points located radially outward of the identified run which points correspond to an edge of a ring of the MaxiCode bulls-eye;
fitting an ellipse to said located points;
expanding the ellipse outwardly to estimate the location of orientation modules of the MaxiCode; and
determining the orientation of the MaxiCode symbol from information read from the orientation modules. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for associating pixel data in a pixel plane, obtained by an optical code reader from an image of a two dimensional grid-based symbol, with corresponding modules in the grid, comprising the steps of:
-
identifying subsets of the pixel data having a known association with plural seed modules;
determining the coefficients of an Euler transform through a least-squares best-fit method using the identified association between the pixel data subsets and the seed modules; and
using the Euler transform to associate other locations in the pixel plane with additional symbol modules. - View Dependent Claims (9)
-
-
7. The method of
claim 7 , wherein more than six seed modules are employed.
-
10. A method of decoding a MaxiCode symbol imaged by an optical code reader, the MaxiCode symbol having a central finder pattern and orientation modules, primary data modules and secondary data modules located on a hexagonal grid, comprising the steps of
locating the central finder pattern; -
locating the orientation modules based on the location of the central finder pattern;
locating primary data modules of the MaxiCode based on the determined location of the orientation modules; and
sequentially locating the secondary data modules outwardly from the primary message modules toward the edge of the symbol using previously located positions of adjacent modules. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A method of determining a candidate location of a MaxiCode symbol bulls-eye center comprising the steps of:
-
(a) locating a first sequence of plural adjacent pixel runs along a horizontal axis, the runs in the sequence having alternating colors;
(b) determining whether the lengths of the located horizontal pixel runs have a predetermined proportionate relationship;
(c) locating a second sequence of plural, adjacent pixel runs having alternating colors along a second axis running through the center of the central horizontal run and not parallel with the horizontal axis;
(d) determining whether the lengths of the pixel runs of the second sequence have a predetermined proportionate relationship with respect to a central run; and
(e) identifying a candidate location of a MaxiCode symbol bulls-eye center based on a positive determination in step (d). - View Dependent Claims (16, 17, 18, 19)
-
Specification