System and method for embedding of a two dimensional code with an image
First Claim
Patent Images
1. A method for generating an embedded image comprising a two dimensional code image embedded within a graphic image, the method comprising the steps of:
- obtaining, by a processor, the graphic image, wherein the graphic image is represented as a matrix with M rows and N columns of pixels, each pixel having a respective value from a range of values and row and column coordinates within the M by N matrix;
obtaining the two dimensional code image, wherein the two dimensional code is represented as a matrix with M rows and N columns of pixels, each two dimensional code image pixel having either a first value or a second value and row and column coordinates within the M by N matrix;
subdividing the M by N graphic image matrix into sub-blocks of m rows and n columns of pixels, where m is less than M and n is less than N;
subdividing the M by N two dimensional code image matrix into sub-blocks of m rows and n columns of pixels;
where m is less than M and n is less than N, wherein each sub-block of the two dimensional code corresponds to a sub-block of the graphic image having an identical pixel row and column coordinates as the two dimensional code sub-block;
applying, in each graphic image sub-block, a first filter to identify a graphic image center region having a plurality of central pixels around a center pixel of the respective graphic image sub-block;
identifying pixels in each graphic image sub-block by applying a second filter to surrounding pixels outside the center region of each graphic image sub-block for luminance value modification, wherein each identified pixel corresponds to a pixel in a sub-block of the two dimensional code with an identical pixel row and column coordinates;
modifying luminance values of central pixels in the center region and the identified pixels surrounding the center region in each graphic image sub-block based on a probability of detection model related to the obtained two dimensional code image; and
for each sub-block of the two dimensional code, replacing pixel values in the two dimensional code sub-block with the modified pixel luminance values of the identical pixel row and column coordinate from the graphic image sub-block.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed are a method and apparatus for embedding a graphic image representation into a two dimensional matrix code by modifying the characteristic values of individual pixels in the image according the values of a provided two dimensional matrix code image. The modified character pixel values are determined using an optimization procedure that minimizes a visual distortion with respect to the original graphic image representation while maintaining the value of a probability of error model below a specified limit.
19 Citations
22 Claims
-
1. A method for generating an embedded image comprising a two dimensional code image embedded within a graphic image, the method comprising the steps of:
-
obtaining, by a processor, the graphic image, wherein the graphic image is represented as a matrix with M rows and N columns of pixels, each pixel having a respective value from a range of values and row and column coordinates within the M by N matrix; obtaining the two dimensional code image, wherein the two dimensional code is represented as a matrix with M rows and N columns of pixels, each two dimensional code image pixel having either a first value or a second value and row and column coordinates within the M by N matrix; subdividing the M by N graphic image matrix into sub-blocks of m rows and n columns of pixels, where m is less than M and n is less than N; subdividing the M by N two dimensional code image matrix into sub-blocks of m rows and n columns of pixels;
where m is less than M and n is less than N, wherein each sub-block of the two dimensional code corresponds to a sub-block of the graphic image having an identical pixel row and column coordinates as the two dimensional code sub-block;applying, in each graphic image sub-block, a first filter to identify a graphic image center region having a plurality of central pixels around a center pixel of the respective graphic image sub-block; identifying pixels in each graphic image sub-block by applying a second filter to surrounding pixels outside the center region of each graphic image sub-block for luminance value modification, wherein each identified pixel corresponds to a pixel in a sub-block of the two dimensional code with an identical pixel row and column coordinates; modifying luminance values of central pixels in the center region and the identified pixels surrounding the center region in each graphic image sub-block based on a probability of detection model related to the obtained two dimensional code image; and for each sub-block of the two dimensional code, replacing pixel values in the two dimensional code sub-block with the modified pixel luminance values of the identical pixel row and column coordinate from the graphic image sub-block. - View Dependent Claims (2, 3)
-
-
4. A method for encoding data in a graphic image, the method comprising the steps of:
-
receiving, by a processor, data to encode; generating a QR code from the data, wherein the generated QR code is represented as a QR code matrix with M rows and N columns and where each element of the QR code matrix is one of two unique values; obtaining the graphic image; generating a graphic image matrix with M rows and N columns where each element of the graphic image matrix has a value; dividing the QR code matrix and the graphic image matrix into sub-blocks of m rows and n columns of elements, where m is less than M and n is less than N; wherein each graphic image sub-block includes a sub-set of element values inside a center region having a plurality of central elements around a center element, and a subset of elements around the center region, and for each graphic image sub-block; modifying a sub-set of element values inside a center region of a graphic image sub-block of the graphic image matrix based upon the element values of QR code elements in a QR code sub-block with the same element rows and columns as the center region of the graphic image sub-block, wherein the center region includes a plurality of central pixels around a center pixel of the respective graphic image sub-block; modifying a sub-set of element values of the elements of the graphic image sub-block other than the elements inside the center region of the graphic image sub-block; defining a sub-set of elements in a corresponding QR code sub-block of the QR code matrix; and replacing element values of the defined sub-set of elements in the corresponding sub-block of the QR code matrix with the modified element values of the graphic image matrix sub-block. - View Dependent Claims (5, 6, 7, 8, 9, 10, 21)
-
-
11. A system for encoding data in a graphic image, the system comprising:
-
a data storage; at least one user interface; a network interface; and a processor, coupled to the data storage, the at least one user interface and the network interface, wherein the processor is programmed with machine-readable instructions for controlling the system to perform functions, including functions to; receive, via the at least one user interface, data in a message for encoding; generate a QR code from the data, wherein the generated QR code is represented as a QR code matrix with M rows and N columns and where each element of the QR code matrix is one of two unique values; obtain a graphic image; generate from the obtained graphic image a graphic image matrix with M rows and N columns where each element of the graphic image matrix has a value; divide the QR code matrix and the graphic image matrix into sub-blocks of m rows and n columns of elements, where m is less than M and n is less than N; wherein each graphic image sub-block includes a sub-set of element values inside a center region having a plurality of central elements around a center element, and a subset of elements around the center region, and for each graphic image sub-block; modify a sub-set of element values inside a center region of a graphic image subblock of the graphic image matrix based upon the element values of QR code elements in a QR code sub-block with the same element rows and columns as the center region of the graphic image sub-block; modifying a sub-set of element values of the elements of the graphic image sub-block other than the elements inside the center region of the graphic image sub-block; define a sub-set of elements in a corresponding QR code sub-block of the QR code matrix; and replace element values of the defined sub-set of elements in the corresponding sub-block of the QR code matrix with the modified element values of the graphic image matrix sub-block. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
22. A system for encoding data in a graphic image, the system comprising:
-
a data storage; at least one user interface selected from a group consisting of a keyboard, keypad, a mouse, a touchpad, a trackball, cursor direction keys, a touchscreen, a display device, and a monitor; a network interface; and a processor, coupled to the data storage, the at least one user interface and the network interface, wherein the processor is programmed with machine-readable instructions for controlling the system to perform functions, including functions to; receive, via the at least one user interface, data in a message for encoding; generate a QR code from the data, wherein the generated QR code is represented as a QR code matrix with M rows and N columns and where each element of the QR code matrix is one of two unique values; obtain a graphic image; generate from the obtained graphic image a graphic image matrix with M rows and N columns where each element of the graphic image matrix has a value; divide the QR code matrix and the graphic image matrix into sub-blocks of m rows and n columns of elements, where m is less than M and n is less than N; wherein each graphic image sub-block includes a sub-set of element values inside a center region having a plurality of central elements around a center element, and a subset of elements around the center region, and for each graphic image sub-block; modify a sub-set of element values inside a center region of a graphic image subblock of the graphic image matrix based upon the element values of QR code elements in a QR code sub-block with the same element rows and columns as the center region of the graphic image sub-block; modifying a sub-set of element values of the elements of the graphic image sub-block other than the elements inside the center region of the graphic image sub-block; define a sub-set of elements in a corresponding QR code sub-block of the QR code matrix; and replace element values of the defined sub-set of elements in the corresponding sub-block of the QR code matrix with the modified element values of the graphic image matrix sub-block.
-
Specification