Techniques for decoding images of barcodes
First Claim
1. A computer-readable storage medium encoded with computer-executable instructions which, when executed by a processor, perform a method comprising:
- identifying a first image of a computer-readable symbol obtained by an image capture device, the computer-readable symbol representing information encoded using a visual symbology arranged on a surface, the visual symbology comprising a plurality of modules of predetermined sizes, each module having a binary reflectance value;
estimating a tilt of the image capture device relative to the surface, bylocating at least three points in the first image, the at least three points corresponding to finder patterns within the visual symbology,defining a first point, a second point, and a third point from among the at least three points,determining a first distance between the first point and the second point,determining a second distance between the first point and the third point,calculating a ratio value comprising a ratio of the first distance and the second distance,calculating a scale value comprising a maximum of the first distance and the second distance, andgraphically expressing the calculated ratio value and the calculated scale value as a tilt coordinate comprising a point in a two-dimensional coordinate system;
identifying test scale values and test ratio values associated with a plurality of test images obtained using a predetermined image capture device;
graphically expressing the test scale values relative to the test ratio values as points in the two-dimensional coordinate system;
within the two-dimensional coordinate system, identifying a first range of points comprising the test scale values relative to the test ratio values, and a second range of points comprising the test scale values relative to the test ratio values;
ascertaining whether the tilt coordinate is within the first range of points or the second range of points;
calculating a success metric associated with the first image based on either a level of blurriness of the first image or whether the tilt coordinate is within the first range of points or the second range of points;
based on the success metric, prior to attempting to decode the visual symbology within the first image, determining a likelihood of successfully decoding the visual symbology within the first image;
when there is determined to be a likelihood of successfully decoding the visual symbology within the first image, arranging for decoding the visual symbology within the first image; and
when there is determined not to be a likelihood of successfully decoding the visual symbology within the first image,not arranging for decoding the visual symbology within the first image,identifying a second image of the computer-readable symbol obtained by the image capture device,based on either the blurriness of the second image or the tilt of the image capture device relative to the surface or both, calculating a success metric associated with the second image, andbased on the success metric associated with the second image, determining a likelihood of successfully decoding the visual symbology within the second image.
3 Assignments
0 Petitions
Accused Products
Abstract
Techniques for enhancing the reliable and efficient decoding of images of computer-readable symbols, which represent information encoded using a one- or two-dimensional visual symbology, are discussed. In accordance with one technique, prior to attempting to decode a particular image, a likelihood of successfully decoding the visual symbology from the image is determined based on a success metric. The success metric is calculated based on the blurriness of the image, or the tilt of the camera that captured the image, or both. Levels of blurriness or tilt, and the likelihood of decoding success, are ascertained with respect to predetermined reference values associated with generally decodable images. In accordance with another technique, image-sharpening algorithms are applied at select locations within the image. Such locations generally correspond to centers of modules within the visual symbology of the computer-readable symbol, which are assigned values based on grayscale values of proximate pixels in the image.
42 Citations
10 Claims
-
1. A computer-readable storage medium encoded with computer-executable instructions which, when executed by a processor, perform a method comprising:
-
identifying a first image of a computer-readable symbol obtained by an image capture device, the computer-readable symbol representing information encoded using a visual symbology arranged on a surface, the visual symbology comprising a plurality of modules of predetermined sizes, each module having a binary reflectance value; estimating a tilt of the image capture device relative to the surface, by locating at least three points in the first image, the at least three points corresponding to finder patterns within the visual symbology, defining a first point, a second point, and a third point from among the at least three points, determining a first distance between the first point and the second point, determining a second distance between the first point and the third point, calculating a ratio value comprising a ratio of the first distance and the second distance, calculating a scale value comprising a maximum of the first distance and the second distance, and graphically expressing the calculated ratio value and the calculated scale value as a tilt coordinate comprising a point in a two-dimensional coordinate system; identifying test scale values and test ratio values associated with a plurality of test images obtained using a predetermined image capture device; graphically expressing the test scale values relative to the test ratio values as points in the two-dimensional coordinate system; within the two-dimensional coordinate system, identifying a first range of points comprising the test scale values relative to the test ratio values, and a second range of points comprising the test scale values relative to the test ratio values; ascertaining whether the tilt coordinate is within the first range of points or the second range of points; calculating a success metric associated with the first image based on either a level of blurriness of the first image or whether the tilt coordinate is within the first range of points or the second range of points; based on the success metric, prior to attempting to decode the visual symbology within the first image, determining a likelihood of successfully decoding the visual symbology within the first image; when there is determined to be a likelihood of successfully decoding the visual symbology within the first image, arranging for decoding the visual symbology within the first image; and when there is determined not to be a likelihood of successfully decoding the visual symbology within the first image, not arranging for decoding the visual symbology within the first image, identifying a second image of the computer-readable symbol obtained by the image capture device, based on either the blurriness of the second image or the tilt of the image capture device relative to the surface or both, calculating a success metric associated with the second image, and based on the success metric associated with the second image, determining a likelihood of successfully decoding the visual symbology within the second image. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An electronic device, comprising:
-
an image capture device operable to obtain an image of a computer-readable symbol, the image comprising a plurality of pixels, each pixel having a grayscale value, the computer-readable symbol representing information encoded using a visual symbology arranged on a surface, the visual symbology comprising a plurality of modules, each module having a binary reflectance value; a computer-readable storage medium; and a processor responsive to the computer-readable storage medium and to a computer program stored in the computer-readable storage medium, the computer program, when loaded into the processor, operable to; receive the image from the image capture device; within the image, identify at least three sections, each section estimated to correspond to a finder pattern within the visual symbology; based on information obtained via examination of the at least three sections, estimate a tilt of the image capture device relative to the surface by locating at least three points in the image, the at least three points corresponding to finder patterns within the visual symbology, defining a first point, a second point, and a third point from among the at least three points, determining a first distance between the first point and the second point, determining a second distance between the first point and the third point, calculating a ratio value comprising a ratio of the first distance and the second distance, calculating a scale value comprising a maximum of the first distance and the second distance, and graphically expressing the calculated ratio value and the calculated scale value as a tilt coordinate comprising a point in a two-dimensional coordinate system; identify test scale values and test ratio values associated with a plurality of test images obtained using a predetermined image capture device; graphically express the test scale values relative to the test ratio values as points in the two-dimensional coordinate system; within the two-dimensional coordinate system, identify a first range of points comprising the test scale values relative to the test ratio values, and a second range of points comprising the test scale values relative to the test ratio values; ascertain whether the tilt coordinate is within the first range of points or the second range of points; based on whether the tilt coordinage is within the first range of points or the second range of points, or on a level of blurriness of the image or both, determine a likelihood of successfully decoding the visual symbology within the image; and when there is determined to be a likelihood of successfully decoding the visual symbology, identify within the image a number of groups of pixels, each group of pixels estimated to correspond to a particular module, within the image, identify locations estimated to correspond to centers of modules within the visual symbology, each location having associated therewith proximate pixels from one or more groups of pixels, the proximate pixels within a predetermined proximity to the location, assign a first value to each identified location to form an array of first values, each first value based on a relationship between grayscale values of the proximate pixels associated with the location, apply a predetermined image processing algorithm to the array of first values to produce an array of a second values for each identified location, and based on the array of second values, arrange to estimate the binary reflective values of the modules corresponding to the identified locations within the image, the estimated binary reflective values usable to retrieve the information encoded using the visual symbology. - View Dependent Claims (10)
-
Specification