Decoding visual codes
First Claim
1. A computing device, comprising:
- a computing device processor;
a memory device including instructions that, when executed by the computing device processor, cause the computing device to;
obtain an image including a visual code, the visual code being one of a plurality of format types and having an arbitrary orientation with respect to the image;
analyze the image to determine a connected region of pixels of a plurality of pixels;
determine a first pixel of the connected region of pixels associated with first pixel coordinates and a second pixel associated with second pixel coordinates;
determine a region of the image that includes the visual code based at least in part on the first pixel coordinates and the second pixel coordinates;
determine a plurality of borders associated with the region;
determine a geometric shape of the region based at least in part on the plurality of borders of the region, the geometric shape having a length and a width;
determine a ratio of the length and the width of the geometric shape;
determine whether the ratio meets at least one aspect ratio threshold;
verify the region includes the visual code when the ratio of the length and the width meets the at least one aspect ratio threshold;
determine the format type of the visual code; and
rectify the visual code from the arbitrary orientation to a rectified orientation suitable for a decoder for the format type; and
decode the visual code using the decoder.
0 Assignments
0 Petitions
Accused Products
Abstract
Various algorithms are presented that enable an image of a data matrix to be analyzed and decoded for use in obtaining information about an object or item associated with the data matrix. The algorithms can account for variations in position and/or alignment of the data matrix. In one approach, the image is analyzed to determine a connected region of pixels. The connected region of pixels can be analyzed to determine a pair of pixels, included in the connected region of pixels, that is separated a greatest distance wherein a first pixel and second pixel of the pair of pixels is associated with image coordinates. Using the image coordinates of the pair of pixels, a potential area of the image that includes the visual code can be determined and the potential area can be analyzed to verify the presence of a potential data matrix.
-
Citations
20 Claims
-
1. A computing device, comprising:
-
a computing device processor; a memory device including instructions that, when executed by the computing device processor, cause the computing device to; obtain an image including a visual code, the visual code being one of a plurality of format types and having an arbitrary orientation with respect to the image; analyze the image to determine a connected region of pixels of a plurality of pixels; determine a first pixel of the connected region of pixels associated with first pixel coordinates and a second pixel associated with second pixel coordinates; determine a region of the image that includes the visual code based at least in part on the first pixel coordinates and the second pixel coordinates; determine a plurality of borders associated with the region; determine a geometric shape of the region based at least in part on the plurality of borders of the region, the geometric shape having a length and a width; determine a ratio of the length and the width of the geometric shape; determine whether the ratio meets at least one aspect ratio threshold; verify the region includes the visual code when the ratio of the length and the width meets the at least one aspect ratio threshold; determine the format type of the visual code; and rectify the visual code from the arbitrary orientation to a rectified orientation suitable for a decoder for the format type; and decode the visual code using the decoder. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method, comprising:
-
obtaining an image including a visual code, the visual code being one of a plurality of format types and having an arbitrary orientation with respect to the image; analyzing the image to determine a connected region of pixels of a plurality of pixels; determining a first pixel of the connected region of pixels associated with first pixel coordinates and a second pixel associated with second pixel coordinates; determining a region of the image that includes the visual code based at least in part on the first pixel coordinates and the second pixel coordinates; determining a first border and a second border associated with the region; determining a ratio of a first length of the first border and a second length of the second border; verifying the region includes the visual code based at least in part on whether the ratio meets at least one aspect ratio threshold; determining the format type of the visual code; and rectifying the visual code from the arbitrary orientation to a rectified orientation suitable for a decoder for the format type; and decoding the visual code using the decoder. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A non-transitory computer readable storage medium storing one or more sequences of instructions executable by one or more processors to perform a set of operations comprising:
-
obtaining an image including a visual code, the visual code being one of a plurality of format types and having an arbitrary orientation with respect to the image; analyzing the image to determine a connected region of pixels of a plurality of pixels; determining a first pixel of the connected region of pixels associated with first pixel coordinates and a second pixel associated with second pixel coordinates; determining a region of the image that includes the visual code based at least in part on the first pixel coordinates and the second pixel coordinates; determining a plurality of borders associated with the region; determining a geometric shape of the region based at least in part on the plurality of borders of the region, the geometric shape having a length and a width; determining a ratio of the length and the width of the geometric shape; determining whether the ratio meets at least one aspect ratio threshold; verifying the region includes the visual code when the ratio of the length and the width meets the at least one aspect ratio threshold; determining the format type of the visual code; rectifying the visual code from the arbitrary orientation to a rectified orientation suitable for a decoder for the format type; and decoding the visual code using the decoder. - View Dependent Claims (17, 18, 19, 20)
-
Specification