Optimization of target-related image detection based on color space conversion technology

By employing a matrix barcode optimized through color space conversion and incorporating ultraviolet and infrared layers, the patent addresses inefficiencies in edge detection and information storage, enhancing accuracy and security in image processing.

JP7848251B2Active Publication Date: 2026-04-20CAPITAL ONE SERVICES LLC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
CAPITAL ONE SERVICES LLC
Filing Date
2024-01-16
Publication Date
2026-04-20

AI Technical Summary

Technical Problem

Existing image processing technologies face challenges in optimizing edge detection and information storage in images, particularly in environments where certain color space models yield suboptimal results, leading to inefficiencies and potential tampering.

Method used

The implementation of a matrix barcode optimized for detection in a particular environment, utilizing color space conversion to select colors that are imperceptible to the human eye, and incorporating ultraviolet and infrared layers to enhance security and information storage.

Benefits of technology

Enhances edge detection accuracy, increases information storage capacity, and provides secure verification by using color space conversion and additional light layers, minimizing redundant computing resources and improving transaction verification.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007848251000001
    Figure 0007848251000001
  • Figure 0007848251000002
    Figure 0007848251000002
  • Figure 0007848251000003
    Figure 0007848251000003
Patent Text Reader

Abstract

To provide a device and a method for making a matrix bar code optimized to detect under a specific environment, and a product having a matrix bar code related to the environment.SOLUTION: The method prepares a histogram of a target by processing one of targets, a plurality of images, and video data, and identifies the most general colors related to the target on the basis of the histogram. The method determines a plurality of colors including at least one of colors which do not exist in relation to the target and the least general colors related to the target on the basis of the histogram, and makes a matrix bar code by using the determined colors.SELECTED DRAWING: Figure 5A
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Related Applications This application claims priority to U.S. Patent Application No. 16 / 357,231, entitled "Optimization of Detection of Images Related to a Target Based on Color Space Conversion Technology," filed on Mar. 18, 2019. The content of the foregoing application is hereby incorporated by reference in its entirety.

Background Art

[0002] Since ancient times, certain materials (e.g., paints, inks, etc.) have been used to record scenes and / or objects in semi-permanent to permanent media. Such recording includes efforts in photography to create photographs. Computer technology has enabled the digitization of these photographs and detection into images, introducing the technical field of image processing. Edge detection constitutes at least one aspect of image processing and is applied in many cases.

[0003] Current improvements are needed with respect to these and other considerations.

Summary of the Invention

[0004] The following presents a simplified summary in order to provide a basic understanding of some novel embodiments described herein. This summary is not an extensive overview and is not intended to identify key / critical elements or delineate its scope. Its sole purpose is to present some concepts in a simplified form as a prelude to a more detailed description that is presented later.

[0005] One aspect of the present disclosure includes an apparatus for creating a matrix optimized for detection in a particular environment. The apparatus includes a memory for storing instructions and a processing circuit coupled to the memory that is operable to execute instructions, and when executed, causes the processing circuit to receive a representative dataset comprising at least one of i) one or more images of a target and ii) one or more videos of a target, wherein the target comprises at least one of i) an environment, ii) a live entity, and iii) an object; process the representative dataset to create a histogram of the target; identify a plurality of most common colors associated with the target based on the histogram; determine a plurality of related colors based on the histogram, wherein the plurality of related colors comprises at least one of i) a color that does not exist in relation to the target and ii) the least common color associated with the target; and create a matrix using the plurality of related colors, wherein the matrix is ​​associated with the target.

[0006] Other aspects of the present disclosure include a method for detecting a matrix optimized for detection in a particular environment. The method involves detecting a matrix that is displayed on a display via a physical medium and associated with an environment, wherein the matrix comprises a plurality of non-black and non-white colors, each of which is i) a color that does not exist in relation to the environment, and ii) at least one of the least common colors associated with the environment.

[0007] Further aspects of the present disclosure include products that display a matrix barcode optimized for detection in a particular environment. Products that are displayed via a physical medium and include a matrix barcode associated with an environment, wherein the matrix barcode includes a plurality of non-black and non-white colors, the matrix barcode is embedded in computer data, the computer data is represented by a plurality of pixels associated with the non-black and non-white colors, and the plurality of pixels are associated with at least three color channels that form the matrix barcode.

[0008] Further aspects of the present disclosure include an apparatus for creating a matrix optimized for detection in a particular environment, the matrix being part of a layered image including an ultraviolet layer. The apparatus includes: receiving a representative dataset comprising i) one or more images and ii) at least one of one or more videos of a target, wherein the target comprises at least one of i) an environment, ii) a live entity, and iii) an object; processing the representative dataset to create a histogram of the target; identifying a plurality of most common colors associated with the target based on the histogram; determining a plurality of related colors based on the histogram, wherein the plurality of related colors comprises at least one of i) colors not associated with the target and ii) the least common colors associated with the target; and creating a matrix using the plurality of related colors and at least one ultraviolet layer, wherein the matrix is ​​associated with the target.

[0009] Further aspects of the present disclosure include a method for detecting a matrix optimized for detection in a particular environment, wherein the matrix is ​​part of an image including at least one ultraviolet layer. The method includes detecting a matrix barcode displayed on a display via a physical medium and associated with an environment, wherein the matrix barcode includes a plurality of non-black and non-white colors and at least one ultraviolet layer, the at least one ultraviolet layer reflecting ultraviolet light, and the matrix barcode includes four or more bits of information.

[0010] Further aspects of the present disclosure include a product displaying a matrix barcode optimized for detection in a particular environment, wherein the matrix barcode is part of an image having an ultraviolet layer. The product includes a matrix barcode displayed via a surface suitable for projecting, absorbing, reflecting, or irradiating ultraviolet light, wherein the matrix barcode includes a combination of four or more constituent matrix barcodes, each associated with a distinct color channel, and each of the four constituent matrix barcodes includes an ultraviolet color channel associated with at least one layer of at least one of the four constituent matrix barcodes.

[0011] Further aspects of the present disclosure include an apparatus for creating a matrix optimized for detection in a particular environment, the matrix being part of a layered image including an infrared layer. The apparatus includes: receiving a representative dataset comprising i) one or more images and ii) at least one of one or more videos of a target, wherein the target comprises at least one of i) an environment, ii) a live entity, and iii) an object; processing the representative dataset to create a histogram of the target; identifying a plurality of most common colors associated with the target based on the histogram; determining a plurality of related colors based on the histogram, wherein the plurality of related colors comprises at least one of i) colors not associated with the target and ii) the least common colors associated with the target; and creating a matrix using the plurality of related colors and at least one infrared layer, wherein the matrix is ​​associated with the target.

[0012] Further aspects of the present disclosure include a method for detecting a matrix optimized for detection in a particular environment, wherein the matrix is ​​part of an image including at least one infrared layer. The method includes detecting a matrix barcode displayed on a display via a physical medium and associated with an environment, wherein the matrix barcode includes a plurality of non-black and non-white colors and at least one infrared layer, the at least one infrared layer reflecting infrared light, and the matrix barcode includes four or more bits of information.

[0013] Further aspects of the present disclosure include a product displaying a matrix barcode optimized for detection in a particular environment, wherein the matrix barcode is part of an image having an infrared layer. The product includes a matrix barcode displayed via a surface suitable for at least one of projecting, absorbing, reflecting, or irradiating infrared light, wherein the matrix barcode includes a combination of four or more constituent matrix barcodes, each associated with a distinct color channel, and each of the four constituent matrix barcodes includes an infrared color channel associated with at least one layer of at least one of the layers.

[0014] Further aspects of the present disclosure include an apparatus for creating a matrix barcode that includes both an ultraviolet layer and an infrared layer. The apparatus includes a memory for storing instructions and a processing circuit coupled to the memory that, when executed, causes the processing circuit to perform the task of creating a matrix barcode using at least one infrared layer and at least one ultraviolet layer.

[0015] Further aspects of the present disclosure include an apparatus for creating a matrix optimized for detection in a particular environment, the matrix being part of a layered image including an infrared layer and an ultraviolet layer. The apparatus includes a memory for storing instructions and a processing circuit coupled to the memory that is operable to execute the instructions, and when executed, causes the processing circuit to perform: create a matrix barcode using one or more color layers, at least one infrared layer and at least one ultraviolet layer; receive a representative dataset including i) one or more images and ii) at least one of one or more videos of a target, wherein the target includes at least one of i) an environment, ii) a live entity, and iii) an object; process the representative dataset to create a histogram of the target; identify a plurality of most common colors associated with the target based on the histogram; and determine a plurality of related colors based on the histogram, wherein the plurality of related colors include at least one of i) colors that do not exist with respect to the target and ii) the least common colors associated with the target, wherein the plurality of related colors are contained in each of one or more color layers.

[0016] Further aspects of the present disclosure include a method for detecting a matrix barcode optimized for detection in a particular environment, wherein the matrix barcode includes both an ultraviolet layer and an infrared layer. The method involves detecting a matrix barcode displayed on a display via a physical medium and associated with an environment, wherein the matrix barcode includes a plurality of non-black and non-white colors, at least one infrared layer, and at least one ultraviolet layer, wherein at least one ultraviolet layer reflects ultraviolet light and at least one infrared layer reflects ultraviolet light.

[0017] Further aspects of the present disclosure include a product for displaying a matrix barcode having both an ultraviolet layer and an infrared layer. The product includes a matrix barcode displayed via a surface suitable for projecting, absorbing, reflecting, or irradiating both infrared and ultraviolet light, wherein the matrix barcode comprises at least one infrared layer and at least one ultraviolet layer.

[0018] Further aspects of the present disclosure include a matrix barcode having both an ultraviolet layer and an infrared layer, and a product for displaying one or more colored layers optimized for detection in a particular environment. The product includes a matrix barcode displayed via a suitable surface that reflects both infrared and ultraviolet light, wherein the matrix barcode comprises at least one infrared layer, at least one ultraviolet layer, and a plurality of non-black and non-white colors, the plurality of non-black and non-white colors being associated with at least three non-white and non-black color channels.

[0019] To achieve the aforementioned and related objectives, certain exemplary embodiments are described herein in connection with the following description and accompanying drawings. These embodiments illustrate various ways in which the principles disclosed herein can be carried out, and all embodiments and equivalents are intended to be within the scope of the claimed subject matter. Other advantages and novel features may become apparent from the following detailed description, in conjunction with the drawings. [Brief explanation of the drawing]

[0020] [Figure 1] This disclosure illustrates an embodiment of a system for improving edge detection in images according to at least one embodiment of the present disclosure. [Figure 2A] This disclosure shows an embodiment of a clustering process for the system of Figure 1 according to at least one embodiment of the present disclosure. [Figure 2B] This disclosure illustrates an embodiment of a color space conversion technique for the system shown in Figure 1, according to at least one embodiment of the present disclosure. [Figure 3] An embodiment of a centralized system for the system of FIG. 1 according to at least one embodiment of the present disclosure is shown. [Figure 4] An embodiment of an operating environment for the system of FIG. 1 according to at least one embodiment of the present disclosure is shown. [Figure 5A] An embodiment of a first logical flow for the system of FIG. 1 according to at least one embodiment of the present disclosure is shown. [Figure 5B] An embodiment of a second logical flow for the system of FIG. 1 according to at least one embodiment of the present disclosure is shown. [Figure 5C] An embodiment of a third logical flow for the system of FIG. 1 according to at least one embodiment of the present disclosure is shown. [Figure 5D] An embodiment of a fourth logical flow for the system of FIG. 1 according to at least one embodiment of the present disclosure is shown. [Figure 6A] The formation of a scanable image according to at least one embodiment of the present disclosure is shown. [Figure 6B] The formation of a scanable image according to at least one embodiment of the present disclosure is shown. [Figure 6C] The formation of a scanable image according to at least one embodiment of the present disclosure is shown. [Figure 7] A computer device for generating and scanning a scanable image according to at least one embodiment of the present disclosure is shown. [Figure 8] An embodiment of a graphical user interface (GUI) for the system of FIG. 1 is shown. [Figure 9] An embodiment of a computing architecture is shown. [Figure 10] An embodiment of a communication architecture is shown.

Best Mode for Carrying Out the Invention

[0021] Various embodiments are directed towards improving image processing by identifying which color space model is most appropriate for detection in a particular environment, such as converting between color spaces to improve detection within a particular environment or in relation to a particular target. In various embodiments, the conversion between color spaces provides a matrix that is placed on an object or displayed by an electronic device, and the matrix is ​​optimized for detection in the environment by performing one or more color space interactions in generating the matrix. In one or more embodiments, the matrix is ​​a matrix barcode, and in one or more embodiments, the matrix barcode is a reference marker.

[0022] In various embodiments, color space conversion encodes information about a matrix barcode, enabling proper scanning of objects associated with the matrix barcode while preventing tampering and misvalidation. For example, if a color channel containing information is linked to the conversion, and there is no scanning device that can access the information associated with the conversion, the scan cannot validate the objects associated with the object and / or access the information associated with it.

[0023] In various embodiments, color space conversion can increase the amount of information stored in a matrix, such as a matrix barcode, as the number of color channels associated with the converted (derived) color space can be increased as needed and without limitation (provided the scanning device is properly configured to perform detection when the matrix is ​​scanned).

[0024] In various embodiments, ultraviolet and / or infrared layers may be used with respect to the matrix to further increase the information associated with the matrix, add a layer of security, and / or to optimize the use of the inks associated with printing the matrix.

[0025] Accordingly, various embodiments of this disclosure offer at least one of the following advantages: i) enhanced detection of images on objects in the environment, e.g., matrices (since the matrice's colors are selected and optimized with the environment's colors in mind); ii) providing more secure verification; iii) storing more information in the matrice, as there are no front-load limitations on the number of color channels available, allowing for an even greater amount of information, and making verification scans more secure by adding infrared or ultraviolet capabilities.

[0026] In various embodiments, color space conversion improves edge detection. Edge detection is a well-known field in image processing, and edge detection techniques yield various results for various color space models. It is not uncommon for one color space model to provide better results in edge detection than another, as acquiring image data according to a color space model increases the likelihood of successful edge detection compared to other color space models.

[0027] While color space models are structured to represent color data, most models represent that color data differently. For example, the CIELAB or LAB color space model represents color as three values: L for luminance / brightness, and alpha (A) and beta (B) for the green-red and blue-yellow color components. The LAB color space model is typically used when converting from the red-green-blue (RGB) color space model to cyan-magenta-yellow-black (CMYK). In some images, representing the color data in the LAB color space model yields better edge detection results than other color space models, including the RGB model. As a result, embodiments can improve the affordability, scalability, modularity, extensibility, or interoperability of operators, devices, or networks that utilize image detection as a means of verifying transactions by providing a more effective and accurate method for scanning images associated with verification (and thus minimizing redundant consumption of computing resources).

[0028] Referring generally to the notation and nomenclature used herein, the following detailed descriptions may be presented relating to program procedures performed on a computer or a network of computers. These descriptions and representations of procedures are intended to be used by those skilled in the art to most effectively convey the nature of their work.

[0029] The procedures described herein are generally considered to be a self-consistent set of operations leading to a desired result. These operations are those that require the physical manipulation of physical quantities. These quantities, though not always, take the form of electrical, magnetic, or optical signals that can be stored, transferred, combined, compared, and otherwise manipulated. For reasons of common usage, it may be convenient to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, etc. However, it should be noted that all these and similar terms are associated with the appropriate physical quantities and are merely convenient labels applied to those quantities.

[0030] Furthermore, the operations performed are often referred to in terms such as addition or comparison, and these are generally associated with intelligent calculations performed by human operators. In any of the calculations described herein that form part of one or more embodiments, such ability of a human operator is not required, or in most cases, undesirable. Rather, the calculations are machine calculations. Useful machines for performing the calculations of various embodiments include general-purpose digital computers or similar devices.

[0031] Various embodiments also relate to devices or systems for performing these calculations. These devices may be specifically constructed for a required purpose, or may comprise a general-purpose computer that is selectively activated or reconfigured by computer programs stored within the computer. The procedures presented herein are not inherently related to any particular computer or other device. Various general-purpose machines may be used with programs written in accordance with the teachings herein, or it may prove convenient to construct more specialized devices for performing the required method steps. The necessary structures for these various machines may become apparent from the given description.

[0032] Here, drawings are referenced. Here, similar reference numbers are used to refer to similar elements throughout. In the following description, many specific details are given for explanatory purposes and to fully understand them. However, it will be apparent that novel embodiments can be implemented without these specific details. In other examples, well-known structures and devices are shown in block diagram form to facilitate their description. The intent is to cover all modifications, equivalents, and alternatives that are consistent with the claimed subject.

[0033] Figure 1 shows a block diagram of system 100. While system 100 as shown in Figure 1 has a limited number of elements in a particular topology, it can be understood that system 100 may contain more or less elements in alternative topologies as desired for a given implementation. System 100 may implement some or all of the structure and / or operation of system 100 within a single computing entity, such as entirely within a single device.

[0034] System 100 may include a device 120. The device 120 may generally be configured to process an input 110 using various components and produce an output 130, the (some) outputs 130 of which may be displayed on a display device or printed on a suitable material surface. The device 120 may also include a processor 140 (e.g., a processing circuit) and computer memory 150. The processing circuit 140 may be any type of logic circuit, and the computer memory 150 may consist of one or more memory units.

[0035] The device 120 further includes logic 160, which is stored in computer memory 150 and executed on processing circuit 140. The logic 160 operates to cause processing circuit 140 to process image data of image dataset 170 into patched image data, which is configured according to a color space model. The color space models described herein refer to any suitable color space model such as red-green-blue (RGB), cyan-magenta-yellow-black (CMYK), or luminance-alpha-beta (LAB). For example, the alpha and beta channels of the LAB color space model refer to the green-red and blue-yellow color components, respectively. The green-red component may represent the variance between red and green, with green being in the negative direction and red in the positive direction along the axis, and the blue-yellow component may represent the variance between blue and yellow, with blue being in the negative direction and yellow in the positive direction along the axis. In various embodiments, an edge may be defined (mathematically) as each pixel position where the alpha channel has a value of zero (0) or close to zero.

[0036] In various embodiments, patched image data includes multiple patches, each patch containing color data (e.g., pixel data where each pixel is represented as a tuple of red-green-blue (RGB) color intensities). As described herein, one color space model (e.g., RGB) may be more likely to succeed in edge detection than another color space model. Some images may provide optimal or near-optimal edge detection results when placed in RGB, while others may provide optimal or near-optimal edge detection results when placed in LAB or XYZ color spaces, and vice versa.

[0037] In various embodiments, logic 160 is further operable to cause processing circuit 140 to apply a color space conversion mechanism 180 to image data to generate image data converted according to other color space models. Logic 160 is then operable to cause processing circuit 140 to apply edge detection technique 190 to the converted image data. Edge detection technique 190 is an image processing technique that refers to one of several algorithms for identifying edges or boundaries of objects in an image. Generally, edge detection technique 190 provides information (e.g., pixel data) indicating the location of edges in the image data of the image dataset 170. Some implementations of edge detection technique 190 operate by detecting brightness discontinuities, and in those implementations, more accurate edge detection results are obtained by having the image data in a LAB color space, or an XYZ color space on RGB. Some implementations of edge detection technique 190 provide accurate edge detection results when the image data is modeled according to HCL (Hue-Saturation-Luminance) instead of RGB.

[0038] In various embodiments, logic 160 is further operable to cause processing circuit 140 to identify image groups corresponding to patched image data. Image dataset 170 further includes image group model data that correlates the images with the color space model most likely to provide appropriate edge detection results. In various embodiments, the image group model data indicates the color space model to use when transforming a given image before edge detection to achieve near-optimal edge detection results. Logic 160 is further configured to cause processing circuit 140 to select a color space transformation mechanism 180 based on the image group. The color space transformation mechanism 180 operates to transform the image data according to another color space model, the other color space model having a higher probability than the color space model when detecting edges in the image group. It is understood that the other color space model can be any color space model, including those with a different number of channels than the color space model.

[0039] In various embodiments, logic 160 may be further operable to cause processing circuit 140 to determine an optimal color space for detection related to a particular object, entity, or environment, and the color space or histogram representation of the particular object, entity, or environment may be part of an image dataset 170. Logic 160 may be further operable to cause processing circuit 140 to determine an optimal color space based on one or more color space conversion operations, the color space conversion operations may provide a mechanism for encoding information in any suitable medium, including but not limited to matrices such as matrix barcodes, reference markers, other suitable barcodes, or other suitable images. Logic 160 may further be operable to cause processing circuit 140 to generate a matrix scheme, such as a matrix barcode, reference markers, etc., for detection related to a particular object, entity, or environment, based on the color space determination. The logic 160 may further be operable to cause the processing circuit 140 to provide a scheme for adding at least one ultraviolet and infrared layer to an image such as a matrix or matrix barcode, which is useful for detection related to a specific object, entity, or environment, and the ultraviolet and / or infrared layer may add additional data transmission capability and / or security to the detectable image.

[0040] One or more color space models described herein, as mentioned and implied elsewhere in this specification, refer to any suitable color space model such as a color space employing a tristimulus system or scheme, red-green-blue (RGB), luminance-alpha-beta (LAB), XYZ color space, and / or similar, and / or variations thereof. Similarly, various embodiments may refer to specific conversions from one particular color space to another, but conversions between other color spaces are contemplated and consistent with the teachings of this disclosure.

[0041] In various embodiments, as described herein, one color space model (e.g., RGB or XYZ) may be more likely to succeed in edge detection than other color space models in relation to the detection of displayed or printed images, such as barcodes, in relation to objects, entities, or environments having a particular color distribution. Furthermore, certain colors and color channels associated with a color space may provide superior edge detection in relation to objects, entities, or environments. Some images may provide optimal or near-optimal edge detection results when placed in RGB, while others may provide optimal or near-optimal edge detection results when placed in XYZ or LAB, and vice versa. As an example, an image of a red balloon drawn on a green field will appear significantly different in RGB than in LAB. Therefore, with respect to edge detection, LAB offers a higher probability than RGB in successfully identifying and locating the edges (e.g., boundaries) of a red balloon with a red color in a green environment, or of a matrix, such as a barcode or reference marker.

[0042] In various embodiments, a color channel is a distribution of colors where the first and second colors have the first and second highest prevalence, respectively, and the first color is the minimum and the second color is the maximum in the color channel, such that the boundary can be a transition between these colors. This boundary can be at least one pixel where the color changes from the first color to the second color, or vice versa. If the first color is set to zero (0) and the second color is set to 255 (255), mathematically, this boundary can be located at a pixel that jumps between the minimum and maximum values. For example, there may be a sharp division (i.e., a thin boundary) where at least two adjacent pixels transition immediately between 0 and 255. In various embodiments, the color channels, e.g., "R", "G", and "B", define a color space such as RGB (e.g., a first color space based on a tristimulus system), and in various embodiments, a custom color channel may be created using a (second) tristimulus value system defined in relation to (and / or conversion to) an XYZ color space. In various embodiments, the number of color channels can be greater than 3.

[0043] In various embodiments, as discussed herein, one or more color channel ranges are selected such that the maximum color value of one or more color channels corresponds to the unique color value, most common color value, and / or best color value of the target object, entity, and / or environment associated with the scan, and the minimum color value of the color channel corresponds to the most unique color, most common color value, and / or best color value of the scannable image, e.g., a matrix, matrix barcode, and / or reference marker. Furthermore, the most common and / or best color values ​​of the scannable image are also the least common (lowest color value) and / or not present in the target object, entity, and / or environment associated with the scan, or vice versa (e.g., with respect to the maximum or minimum value).

[0044] In various embodiments, as described herein, a particular object, entity, or environment may have a color distribution and associated colors and color channels that create a more complex and diverse color space, including colors that are imperceptible to the human eye and more attractive for detection, in addition to increasing the capacity for storing and encrypting information. Thus, in various embodiments, logic 160 is further operable to cause processing circuit 140 to identify image groups corresponding to patched image data. Image dataset 170 further includes image group model data that correlates the images with the color space conversion model most likely to provide a suitable edge detection result. In some embodiments, the image group model data indicates a color space conversion model to use when converting a given image before edge detection in order to achieve a near-optimal edge detection result. Logic 160 is further configured to cause processing circuit 140 to select a color space conversion mechanism 180 based on the image group. The color space conversion mechanism 180 operates to convert the image data according to another color space model, the other color space model having a higher probability than the color space model when detecting edges in the image group.

[0045] In various embodiments, the system 100 may include one or more of a camera or video device 195 and / or a scanning device 197, both of which may be any suitable device for acquiring, capturing, editing, and / or scanning images including, but not limited to, video or camera photographs of objects, entities, and / or environments. The logic 160 may be configured to capture or scan images of a particular object, entity, or environment using devices 195 and / or 197, the captured images becoming part of an image dataset 170, which may be used to determine an appropriate color space, perform color space conversions, and / or scan the images determined from the color space conversions so that they may match the teachings provided herein.

[0046] In various embodiments, System 100 may include a printing device 199 (e.g., a printer) or an application therefor, and by applying a color space conversion technique or mechanism such as a scannable matrix, matrix barcode, or reference marker, the image portion of the image dataset 170 and / or images generated by one or more components of System 100 may be printed by the printing device 199, and / or the printing device 199 may provide a scheme for other devices to print or generate images associated with a scannable matrix, matrix barcode, or reference marker.

[0047] Figure 2A shows an embodiment of the clustering process 200A of system 100. The clustering process 200A operates on an image dataset (for example, the image dataset 170 in Figure 1) that stores the color data of images.

[0048] In some embodiments of the clustering process 200A, the color data 202 of an image undergoes a patching operation in which the image is processed into multiple patches 204 of patched image data 206. Each patch 204 of the patched image data 206 contains color data according to a color space model, such as pixel data having RGB tuples. The clustering process 200A further processes the patched image data 206 via a transformation operation 208 by applying a color space transformation mechanism to the color data of the patched image data 206 to transform the patched image data into transformed image data of the transformed image 210. The color data of the patched image 206 is configured according to a color space model, and the new color data of the transformed image 210 is generated according to a different color space model.

[0049] In some embodiments, the clustering process 200A performs a mini color space conversion on at least one patch of the patched image 206, and possibly leaves one or more patches without conversion. Through conversion operation 208, the mini color space conversion modifies the color data in at least one patch to convert the patched image data into the converted image data of the converted image 210. The clustering process 200A may perform stitching between patches to make the patched image 206 uniform, as opposed to creating artificial edges.

[0050] Figure 2B shows examples of color space conversion schemes 200B according to various embodiments of the present disclosure. A histogram 218 representation of a particular object, entity, or environment 215 is provided (where numbers 100, 90, 80, and 70 are intended to represent simplified versions of color distribution values ​​for one or more colors representing a particular object, entity, or environment 215). The histogram 218 may be generated by having one or more components of the system 100 perform a scan of the particular object, entity, or environment 215 and generating a histogram 218 of the most common, least common, or nonexistent colors of the object, entity, or environment 215. In one or more embodiments, the histogram 218 may be four or more of the most common colors of the object, entity, or environment. Since various embodiments of this disclosure are explicitly intended to use colors that are imperceptible to the human eye, there is no limit to the number of colors that can be used with respect to histogram 218, and any color space transformations or any images, matrices, matrix barcodes, reference markers, etc., generated from the color space discussed herein, including but not limited to these, may have more than four colors and four color channels, and the four colors and / or four color channels are distinct and different from each other.

[0051] In various embodiments, one or more components of system 100 may determine the most common color associated with an object, entity, or environment 215, and the resulting histogram 218 may be based on that determination. Using the histogram 218, the most common colors may be mapped to a distribution 222 associated with a suitable color space 224, including but not limited to the RGB color space 224. In various embodiments, the colors in the histogram 218 are mapped according to the tristimulus values ​​of the RGB color space, e.g., "R", "G", and "B". Using any suitable mathematical transformation, e.g., linear algebra, the transformation to the RGB color space may be mapped, and the mapped RGB color space may be transformed to another color space, for example.

[0052] In various embodiments, once the distribution 222 is mapped according to the RGB color space 224, one or more components of system 100 may convert the RGB distribution 222 to a new color space 226 having a distribution 228 according to the new color space 226. Any suitable color space conversion may be used, including a conversion to the XYZ color space. The conversion may follow any suitable mathematical conversions and equations governing the XYZ color space, including a suitable tristimulus value conversion between RGB and XYZ. In various embodiments, "Y" represents the luminance value in the XYZ space, and at least one (or both) of "X" and "Z" represents the chrominance value and associated distribution of the color space, e.g., 226 plotted according to the XYZ color space.

[0053] In various embodiments, the luminance channel "Y" is filtered to yield a color space 228' and a distribution 226', which may help determine only the actual saturation associated with an entity, object, or environment 215 without considering luminance (this is useful because it allows the use of colors that are at least imperceptible to the human eye). In various embodiments, four (or more) lines may be defined by points (a1, b1), (a2, b2), (a3, b3), and (a4, b4), selected to be as far apart as possible with respect to the distribution 226'. In various embodiments, points a1, a2, a3, and a4 are selected to correspond to the most common colors associated with the entity, object, or environment 215, while b1, b2, b3, and b4, conversely, may extend to represent the least common or nonexistent colors in relation to the entity, object, or environment b1, b2, b3, b4. These lines may define vectors for new color space transformations in XYZ or other suitable color spaces 245 and may form the basis for new XYZ tristimulus values. Images such as matrices or matrix barcodes may be created using the colors associated with the new color space 250 and the color distribution 245 defined by the color channel vectors (i,-i), (j,-j), (k,-k), additional color channels, and all other color channels associated therewith (omitted from display due to the limitations of three-dimensional space). In various embodiments, the colors may correspond to less common or nonexistent colors in relation to the environment in which a potential scan may occur (or is being scanned), e.g., a matrix barcode on an entity or object and / or in relation to them, and which has the greatest difference in color, thereby enhancing edge detection.

[0054] Alternatively, although not explicitly shown, the maximum distance from the most common color to the least common color can be determined, for example, from a1 to b1, a2 to b2, and then lines can be drawn from b1, b2, b3, and b4 in parallel or opposite directions, tangent to the vectors or directions associated with a1, a2, a3, and a4. The color channel vectors (i,-i), (j,-j), (k,-k), additional color channels, and all other color channels (omitted from display due to the limitations of 3D space) associated with the color space 250 may be completely colorless and / or mildly common in relation to entities, objects, or the environment 215, which may further enhance edge detection.

[0055] In various embodiments, when performing a color space conversion between 228' and 250, in addition to performing algebra or other appropriate conversions associated with the XYZ color space, the color channel vectors, e.g., (i,-i), (j,-j), (k,-k) can be orthogonal to each other by performing any appropriate mathematical and / or directional operations on the vectors and / or by selecting appropriate points on the color space 226' and distribution 228' when performing the conversion. In various embodiments, a second maximum difference between one or more points may be taken in space 250 in addition to a directional operation that centers the distribution 245 along the axes of the newly defined color channel vectors, e.g., (i,-i), (j,-j), (k,-k) such that the color channel vectors are orthogonal and have the maximum distance from each other. In various embodiments, performing at least one of the orthogonality operation, maxim determination, and / or directional operation may further enhance edge detection of images generated for scanning, such as matrix barcodes, in relation to the entity, object, or environment 215 being scanned.

[0056] In various embodiments, each vector, e.g., (-i,i), among the various color channels described above, defines a first color that is the minimum in the color channel and a second color that is the maximum. This boundary may be at least one pixel where the color changes from the first color to the second color, or vice versa. If the first color is set to zero (0) and the second color is set to 255 (255), mathematically, this boundary may be located at a pixel that jumps between the minimum and maximum values. For example, there may be a sharp division (i.e., a thin boundary) where at least two adjacent pixels transition immediately between 0 and 255. In various embodiments, the boundary may be a transition between these colors, if, as described above, the maximum color value of one or more color channels corresponds to the unique color value, most common color value, and / or highest color value of the target object, entity, and / or environment associated with the scan, and the minimum color value of the color channel corresponds to the most unique color, most common color value, and / or highest color value of the scannable image, e.g., a matrix, matrix barcode, and / or reference marker, then the boundary may be a transition between these colors. Furthermore, the most common and / or highest color values ​​of a scannable image are also the least common (lowest color value) and / or absent in the target object, entity, and / or environment associated with the scan, or vice versa (e.g., with respect to the maximum or minimum value).

[0057] The length of the color channel can be adjusted as appropriate based on the scanning and image acquisition capabilities of various components, such as the camera or video device 195, the scanning device 197, and / or the recognition component 422-4 (described below with respect to Figure 4). Here, the length increases the number of different colors between the minimum and maximum points of the color channel.

[0058] In various embodiments, the conversion from an RGB color space to an XYZ color space, and / or the conversion from the initially converted (differential) XYZ space to another XYZ color space, can be controlled by a tristimulus-value equation (Equation 1) that defines the converted color space and the distribution of the color spaces, where the values ​​of x+y=z can be normalized to 1. x = X / (X + Y + Z) y = Y / (X + Y + Z), z = Z / (X + Y + Z). formula 1

[0059] In various embodiments, the values ​​of "X", "Y", and "Z" depend on the input color from the RGB color space (or, in the case of a second transformation, from the color space being transformed). As described above, the tristimulus values ​​are three definitions, but the transformation may include three or more color channels, including color channels that define colors imperceptible to the human eye. In various embodiments, the transformation governed by Equation 1 may form a key for a scanning device to scan an image defined by the transformation, such as a matrix, for example, a matrix barcode or a reference marker. In various embodiments, this means that in addition to providing a means for increasing the number of color channels and colors in the image being scanned, it also means increasing the bits of information that can be encoded therein, and another advantage of various embodiments is to provide a way to securely encode information without knowing one or more equations governing the color space and without knowing the input values ​​(based on a first color space associated with an entity, object, or environment 215), and a successful scan cannot occur. Therefore, in various embodiments, the logic 160 of system 100 may cause the processor 140 (or an application programmed to perform the operation of 100) to provide the scanning device 197 with a key governed by equation 1 in order to scan an image encoded according to one or more color space conversions associated with equation 1.

[0060] In various embodiments, the logic 160 of system 100 may cause the processor 140 to provide a scheme for adding one or both an ultraviolet layer and / or an infrared layer to an image such as a matrix, for example, a matrix barcode or reference marker. The image includes a plurality of non-black or non-white colors managed by any suitable color space. In various embodiments, the scheme may include both an ultraviolet layer and an infrared layer, and the ultraviolet layer may form a first layer of the image to take advantage of its properties. In various embodiments, the non-black and non-white colors of a scannable image may be determined by one or more color space conversion techniques as outlined herein. In various embodiments, non-black and non-white colors mean colors that are neither black nor white. In various embodiments, non-black and non-white colors mean colors that are not black, not white, or not based on a grayscale distribution.

[0061] Figure 3 shows a block diagram of the distributed system 300. The distributed system 300 may distribute some of the structure and / or operation of system 100 across multiple computing entities. Examples of the distributed system 300 include, but are not limited to, client-server architectures, 3-tier architectures, N-tier architectures, tightly coupled or clustered architectures, peer-to-peer architectures, master-slave architectures, shared database architectures, and other types of distributed systems. Embodiments are not limited to this context.

[0062] The distributed system 300 may comprise a client device 310 and a server device 320. Generally, the client device 310 and / or the server device 320 may be the same as or similar to the device 120, as described with reference to Figure 1. For example, the client device 310 and the server device 320 may each comprise a processing component 330 that is the same as or similar to the processing circuit 140, as described with reference to Figure 1. In other examples, devices 310 and 320 may communicate via a communication medium 312 using communication signals 314 via a communication component 340.

[0063] The server device 320 may communicate with other devices via the communication medium 312 using communication signals 314 through the communication component 340. The other devices may be inside or outside device 320, as is desired in a given implementation.

[0064] The client device 310 may comprise or use one or more client programs that operate to perform various methodologies according to the embodiments described. In one embodiment, for example, the client device 310 may implement system 100 including logic 160 in Figure 1, and in various embodiments, the client device 310 may perform one or more operations for forming an image based on one or more color space conversions, as outlined above and herein.

[0065] The server device 320 may comprise or use one or more server programs that operate to perform various methodologies according to the embodiments described. In one embodiment, for example, the server device 320 may generate image group model data 350 and / or generate image group model data 350 by performing the clustering process 200A of Figure 2A and performing one or more color space conversion operations of scheme 200B. The image group model data 350 may include a matrix, for example, entities, objects such as a matrix barcode or reference marker, or a printing scheme or color distribution of an image scanned in the environment 215.

[0066] Devices 310, 320 may comprise any electronic devices capable of receiving, processing, and transmitting information from System 100. Examples of electronic devices include, but are not limited to, ultramobile devices, mobile devices, personal digital assistants (PDAs), mobile computing devices, smartphones, telephones, digital telephones, mobile phones, e-book readers, handsets, one-way pagers, two-way pagers, messaging devices, computers, personal computers (PCs), desktop computers, laptop computers, notebook computers, netbook computers, handheld computers, tablet computers, servers, server arrays or server farms, web servers, network servers, internet servers, workstations, minicomputers, mainframe computers, supercomputers, network appliances, web appliances, distributed computing systems, multiprocessor systems, processor-based systems, consumer electronics, programmable consumer electronics, game devices, televisions, digital televisions, set-top boxes, wireless access points, base stations, subscriber stations, mobile subscriber centers, wireless network controllers, routers, hubs, gateways, bridges, switches, machines, or combinations thereof. Embodiments are not limited to this context.

[0067] Devices 310 and 320 may use the processing component 330 to execute instructions, processing operations, or logic of system 100. The processing component 330 may comprise various hardware elements, software elements, or a combination of both. Examples of hardware elements may include devices, logic devices, components, processors, microprocessors, circuits, processing circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, etc.), integrated circuits, application-specific integrated circuits (ASICs), programmable logic devices (PLDs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs), application-specific standard products (ASSPs), system-on-chip systems (SOCs), complex programmable logic devices (CPLDs), memory units, logic gates, registers, semiconductor devices, chips, microchips, chipsets, and the like. Examples of software elements may include software components, programs, applications, computer programs, application programs, system programs, software development programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application program interfaces (APIs), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. The decision of whether an embodiment is implemented using hardware and / or software elements may vary depending on any number of factors required for a particular implementation, such as desired computing speed, power level, thermal tolerance, processing cycle budget, input data rate, output data rate, memory resources, data bus speed, and other design or performance constraints.

[0068] Devices 310 and 320 may use the communication component 340 to perform communication operations or logic of system 100. The communication component 340 may implement any well-known communication technologies and protocols, such as technologies suitable for use in packet-switched networks (e.g., public networks such as the Internet, private networks such as enterprise intranets), circuit-switched networks (e.g., public switched telephone networks), or combinations of packet-switched and circuit-switched networks (using appropriate gateways and translators). The communication component 340 may include various types of standard communication elements, such as one or more communication interfaces, network interfaces, network interface cards (NICs), radios, radio transmitters / receivers (transceivers), wired and / or wireless communication media, and physical connectors. As an example, but not an limitation, the communication medium 312 includes wired and wireless communication media. Examples of wired communication media may include wires, cables, metal leads, printed circuit boards (PCBs), backplanes, switch fabrics, semiconductor materials, twisted-pair wires, coaxial cables, optical fibers, and propagating signals. Examples of wireless communication media may include acoustics, radio frequency (RF) spectrum, infrared light, and other wireless media.

[0069] Figure 4 shows an embodiment of the operating environment 400 of system 100. As shown in Figure 4, the operating environment 400 includes applications 420, such as enterprise software applications, for processing inputs 410 and generating outputs 430.

[0070] Application 420 comprises one or more components 422-a, where a represents any integer. In one embodiment, application 420 may comprise an interface component 422-1, a clustering component 422-2, a transformation mechanism library 422-3, and a recognition component 422-4. Interface component 422-1 may generally be configured to manage the user interface of application 420, for example, by generating graphical data for presentation as a graphical user interface (GUI). Interface component 422-1 may generate GUIs for depicting various elements such as dialog boxes and HTML forms with rich text.

[0071] The clustering component 422-2 can generally be configured to organize images into image groups or clusters. Some embodiments of the clustering component 422-2 perform one or more color space conversion operations of the clustering process 200A in Figure 2A and / or scheme 200B in Figure 2B to generate the image group model data 350 in Figure 3. In various embodiments, for each image group, the clustering component 422-2 identifies a specific color space conversion that has a higher probability of success in edge detection for that group than the current color space conversion, which is outlined herein or otherwise appropriate. In various embodiments, the clustering component 422-2 may perform the clustering process described above for various edge detection techniques, with each set of image groups resulting in a set of image groups corresponding to a particular technique. Edge detection techniques differ in how they identify boundaries in images; some techniques detect color differences, while others measure other attributes. Regarding how they measure color differences, several techniques differ. Multiple techniques can be created by modifying certain steps in a single technique.

[0072] The color space conversion library 422-3 includes multiple color space conversion mechanisms and may generally be arranged to provide a color space conversion mechanism for application to an image, converting that image to a converted image according to a color space model different from the image's original color space model. As described herein, a color space model refers to a technique for modeling the color data of an image, such as RGB or LAB, or RGB to XYZ, or RGB to XYZ to other XYZ. Generally, and as outlined in one or more embodiments herein, a color space conversion mechanism performs mathematical operations to map data points in the image's original / current color space model to corresponding data points according to a different color space model. This may include converting the value of a data point in one domain to the corresponding value of a corresponding data point. For example, a color space conversion may convert an RGB pixel with a tuple of RGB values ​​to a LAB pixel with a tuple of LAB values, an RGB pixel with a tuple of RGB values ​​to an XYZ pixel with a tuple of XYZ values, and / or an RGB pixel with a tuple of RGB values ​​to an XYZ pixel with a tuple of XYZ values, and then back to another XYZ pixel with another tuple of XYZ values. The pixels associated with the final conversion may define the color distribution of a scannable image, such as a matrix or matrix barcode used for scanning associated with an entity, object, or environment.

[0073] A recognition component 422-4, such as a suitable scanner, printer, and / or camera or an application for such a recognition component 422-4, may generally be configured to perform edge detection techniques as part of a recognition operation on a transformed image. A well-known example of a recognition operation is optical character recognition (OCR). An application 420 invokes the recognition component 422-4 to perform a variety of tasks, including scanning a matrix, e.g., a matrix barcode or reference marker, to verify the authenticity of an item and / or to obtain encoded information associated with a barcode. The recognition component 422-4 may include a key, such as one or more mathematical formulas with specified inputs that define a color space conversion, to scan the associated colors reflected by the barcode. The colors are based on one or more color space conversion techniques outlined herein. The key defines the final conversion that defines the color channels and color spaces associated with the colors of the scannable image. Each color channel defined by the key represents at least one bit of the encoded data.

[0074] In various embodiments, the recognition component 422-4 may print or provide a schema for printing an image, such as a barcode and / or reference marker, which includes one or more non-black and non-white colors and one or both of an ultraviolet layer and an infrared layer. Each color channel associated with each of the non-black and non-white colors may constitute at least one bit of data, and each of the infrared and ultraviolet layers may constitute one bit of data. In various embodiments, each of the non-black and non-white colors is generated by a color space conversion mechanism or technique and is scannable by a key associated with the conversion mechanism. In various embodiments, the recognition component 422-4 can be configured to scan any number of colors, including colors imperceptible to the human eye, so the number of color channels may be configured to be four or more color channels.

[0075] In various embodiments, non-black and non-white color channels may be used in combination with either or both an infrared layer or an ultraviolet layer on a scannable image such as a matrix, matrix barcode, and / or reference marker, with each of the color channels, ultraviolet layer, and / or infrared layer representing different bits of data and different methods of encoding the data into an image, so that six or more bits of data can be encoded into the image. In various embodiments, the ultraviolet layer may be initially printed or displayed in relation to the infrared layer and various layers associated with the non-black and non-white color channels in order to take advantage of the properties of the ultraviolet layer.

[0076] In various embodiments, an image including all or one of the layers associated with non-black and non-white color channel layers, an ultraviolet layer, and an infrared layer can be scanned by a recognition component 422-4 for a verification component. The recognition component 422-4 may include or receive a key based on a formula related to color space conversion, e.g., formula 1. The color space conversion reveals the associated color channels having the associated colors containing the information, in addition to one or more verification bits indicating whether the presence or absence of the ultraviolet and / or infrared layers indicates encoded information. Thus, the key and / or verification bits provide a method for decoding the information.

[0077] In various embodiments, application 420 includes a key and / or verification bit and is configured to provide output 430 when an image scan, e.g., a barcode, is locally verified. In various embodiments, the recognition component 422-4 may require an additional verification step to contact a host system, including one or more functionalities of system 100, to verify, for example, by one or more comparison steps, that the key and / or verification bit used by the recognition component 422-4 is correct. If the key is correct and the scan is verified by the recognition component 422-4, output 430 of application 420 is one or more accesses, transfers, or receipts of information, including currency, personal, and / or financial information, to or from other entities.

[0078] In various embodiments, scanning images, e.g., matrices, matrix barcodes, and / or reference markers, may be performed to protect users from financial misappropriation. Recognition components 422-4 perform text or image recognition operations to determine whether an image, e.g., a barcode, is valid, and according to some embodiments, the validity of the scan may be associated with the verification or access of information, including any sensitive information such as a password or social security number (SSN). Application 420 may call recognition components 422-4 to scan an image, e.g., a barcode, before publishing social network content, so as not to allow for the possibility that the image cannot be properly scanned, for example, if the component scanning the image does not have a key that can properly decode it according to the key related to color space information and / or the ultraviolet and / or infrared layers, which are bits indicating that the information contains, the identification of sensitive information in the content may prevent the publication. In various other embodiments, scanning an image, e.g., a barcode, may provide the initiation of a financial transaction, e.g., the transfer of any appropriate electronic funds.

[0079] This specification includes a series of flowcharts representing exemplary methodologies for implementing novel embodiments of the disclosed architecture. For simplicity of explanation, one or more methodologies shown herein in the form of flowcharts or flow diagrams are shown and described as a series of actions, but it should be understood that the methodologies are not limited by the order of actions, as some actions may be performed in a different order and / or simultaneously with other actions accordingly. For example, a person skilled in the art may understand and appreciate that a methodology can be alternatively represented as a series of interrelated states or events, such as a state diagram. Furthermore, not all actions shown in a methodology are necessary for a new implementation.

[0080] Figure 5A shows one embodiment of the logical flow 500A. The logical flow 500A may represent some or all of the operations performed by one or more embodiments described herein.

[0081] In the illustrated embodiment shown in Figure 5A, the logical flow 500A receives a representative dataset of a target, such as an entity, object, or environment (502). For example, the logical flow 500 may receive a representative dataset including at least one of i) one or more images of the target and ii) one or more videos of the target, where the target includes at least one of i) an environment, ii) a live entity, and iii) an object using any suitable camera or scanning device. The representative dataset is included in the image group model data 350 or is acquired directly by scanning the target using any suitable device, e.g., a camera or video device 195 and / or a scanning device 197. In various embodiments, the target may be an environment containing scannable images.

[0082] Logical flow 500A can process a representative dataset into an appropriate color scheme representation, such as a histogram (504). For example, logical flow 500 may examine image group model data 350 containing captured data of a scanned environment. Once logical flow 500 identifies the scanned data of the environment, it may process the data into a histogram in a specific color space, such as the RGB color space.

[0083] Logical flow 500A can use a histogram to identify the most common colors in the environment (506). In various embodiments, the logical flow identifies the most common colors in order to apply a color space conversion mechanism to substantially maximize edge detection of scannable images such as matrices, matrix barcodes, and reference markers.

[0084] Logical flow 500A may determine the number of associated colors based on a histogram (508). For example, the histogram may be used to map to a first color space where the least common and / or non-existent colors are determined with respect to the most common colors of the target, and the least common and / or non-existent colors form the basis of one or more color channels in a second color space.

[0085] In various embodiments, the associated multiple colors may represent a range of colors between the most common and least common and / or nonexistent colors of the target, including the only color that does not exist in relation to the target and / or the least common color in relation to the target. In various embodiments, to determine based on the number of associated colors, the logical flow may select a color space conversion mechanism and apply it to the image data associated with the histogram. As described herein, the image data includes color data configured according to a color space model, and a color space representation of the target data may be created using, for example, a histogram. In some embodiments, the logical flow 500 applies the color space conversion mechanism 180 of Figure 1 by converting the image data to converted image data containing color data according to a different color space model than the color space associated with the histogram. For example, the logical flow may create a histogram of the image data associated with the target and then use the histogram to create a first color space representation of the target, for example, an RGB color space representation. The logical flow may then perform one or more additional color space conversion techniques to other color spaces, such as the XYZ color space or any other suitable color space utilizing a tristimulus system, as described below.

[0086] In various embodiments, the logical flow 500A can manipulate the color data of the original image data to perform a color space conversion, enabling efficient edge detection of the converted image data. As described below, the logical flow 500A can modify the color space model to quickly identify boundaries, such as when two colors are close together. The logical flow 500A examines each data point in the image, and for each location, the logical flow 500A identifies the color. In various embodiments, the color space conversion may determine at least one set of color coordinates corresponding to a group of related colors in the other (second) color space, based on at least one set of color coordinates for each of the most common colors according to the other (or second) color space. The at least one set of coordinates for the group of most common colors is either or both perpendicular / orthogonal and maximum distance to at least one set of coordinates for the related colors with respect to the other color space. In various embodiments, the second color space may be considered a derived color space of the first color space.

[0087] In various embodiments, this ensures that the colors used in the scannable image can maximize edge detection. This is because the maximum distance between the common color channels and colors of the target in the environment and other color channels and colors (related color channels and colors) ensures that the related color channels and colors are not present in the target and / or are not the most common in the target. Furthermore, if the related colors and color channels are selected to be perpendicular or orthogonal to (and to each other with respect to) the target color channels and colors, this can further enhance edge detection.

[0088] In one example utilizing one or more of the techniques outlined above, logical flow 500A proceeds to identify two or more colors by their prevalence in a target and organize them into a single channel. For example, consider a first color and a second color with first and second highest prevalence, respectively. Here, the first color is the minimum and the second color is the maximum in the color channel, such that the boundary can be a transition between these colors. This boundary can be at least one pixel where the color changes from the first color to the second color, or vice versa. If the first color is set to zero (0) and the second color is set to 255 (255), mathematically, this boundary can be located at a pixel that jumps between the minimum and maximum values. For example, there may be a sharp division (i.e., a thin boundary) where at least two adjacent pixels transition immediately between 0 and 255.

[0089] As suggested above, these color channels may correspond to a first color space, e.g., RGB, which is obtained based on a first set of tristimulus values, and which may have color coordinates to represent a target color, e.g., the most common color of the target. Next, logic flow 500A may identify one or more unused or rarely used (i.e., not the most common or nonexistent) colors and establish those colors in the other channels so as to be opposite to the common colors identified above. The new color channels (or color channels) form the basis of a new color space, e.g., a new set of tristimulus values ​​for the XYZ color space, and the first color space is transformed into the second color space.

[0090] Next, logic flow 500A may perform one or more additional operations. For example, configuring each color channel of the new color space to be perpendicular or orthogonal to each other in the new color space model; performing an additional transformation to a third color space, including an intermediate operation to filter out features not related to chromacity, such as luminance or lightness channels; and / or performing an orientation operation in the second (or third) color space before making the color channels perpendicular or orthogonal to each other (to maximize the distance between color channels and, as a result, enhance edge detection).

[0091] Logical flow 500A may use the associated colors of block 508 to create one or more scannable images, such as a matrix, a matrix barcode, a reference marker, or any other image suitable for scanning (510). In various embodiments, the associated colors may be the colors of each color channel associated with the final color space conversion described above, and may be, for example, multiple color channels and associated colors that can be represented in the XYZ color space and may be uncommon to the target and / or not present at all to the target. In various embodiments, the most uncommon and / or non-existent colors may be arranged orthogonally to each other to further enhance edge detection. In various embodiments, the scannable image may be a matrix barcode formed to reflect each of the most uncommon and / or non-existent and / or orthogonal color channels with respect to an environment including a target, such as a matrix barcode.

[0092] In various embodiments, matrix barcodes have embedded information based on color space conversion. For example, each pixel associated with a matrix barcode is associated with a color channel in the final color space, such as an XYZ color space with color channels representing the least common or nonexistent colors in the environment. Each color channel represents a bit of data, and the number of color channels can be three or more, four or more, etc. (as there are no limitations imposed by human perception). And by extension, the number of encoded bits can be three or more, four or more, etc.

[0093] In various embodiments where four or more colors are used, each of the four or more colors is a distinct color relative to one another, and based on the color space techniques discussed herein and above, the four or more colors are derived from a plurality of coordinates corresponding to each of at least four different colors along a transformed (derived) color space. The transformed (derived) color space includes a plurality of coordinate sets representing at least four common colors of a target, e.g., an environment. Each of the four or more colors corresponds to a separate set of coordinates in the transformed (derived) color space.

[0094] In various embodiments, each of the four or more different colors is selected on the basis that it has the greatest opposite coordinate relationship with respect to at least one of a plurality of coordinate sets representing at least four common colors in a target, e.g., environment.

[0095] There are several applicable edge detection techniques, and edge detection technique 190 may be suitable for one color space model of the converted image data, while other edge detection techniques may be suitable for the original color space model. Embodiments are not limited to this example.

[0096] Figure 5B shows one embodiment of the logical flow 500B. The logical flow 500B may represent some or all of the operations performed by one or more embodiments described herein.

[0097] In the illustrated embodiment shown in Figure 5B, the logic flow may detect a matrix containing one or more non-black and non-white colors, where each non-black and non-white color is i) at least one color that does not exist in relation to the environment, and / or ii) at least one least common color associated with the environment.515 In various embodiments, the matrix is ​​a barcode constructed with one or more color space conversion techniques as outlined herein, for example, the matrix barcode is derived from the RGB color space and a derived color space of the RGB color space (a (derived) color space converted from the RGB color space, such as the XYZ color space). In various embodiments, the derived color space is an XYZ color space with filtered luminance channels.

[0098] In various embodiments, the barcode may be scanned using a suitable key, e.g., any suitable component having a tristimulus equation associated with conversion to an XYZ color space, e.g., a scanning device 197, which in various embodiments reveals the color channels associated with the color associated with the scannable portion of the matrix barcode, including the information encoded in the matrix barcode. In various embodiments, the barcode may contain four or more distinct colors, each associated with at least four distinct color channels, where each color is different from one another and different from the most common color of the environment. In various embodiments, the barcode's colors and color channels may be calculated according to a coordinate relationship between the most common color and the least common color and / or non-existent color in a derived color space, including the maximum distance between the most common color and the least common color and / or non-existent color. Additional or different color space conversion techniques may be used, as discussed herein, and this is merely one example consistent with the present disclosure.

[0099] In various embodiments, barcodes may be printed and / or embedded in a physical medium, e.g., a physical surface or material, using any suitable component, e.g., a printing device 199, in the least common and / or non-existent colors, and the barcodes may be scanned along the surface of the physical surface. In other embodiments, any suitable computer device, including a computer, laptop, or tablet (shown in Figure 7 provided below), may be configured to generate scannable barcodes that reflect the least common or non-existent colors, which can be scanned along the surface of the computer display.

[0100] Logical flow 500B may transmit the scan results to any suitable computer device discussed herein, including instructions on whether the barcode scan was successful and whether any associated encoded information was obtained.

[0101] Figure 5C shows one embodiment of the logical flow 500C. The logical flow may represent some or all of the operations performed by one or more embodiments described herein.

[0102] In the illustrated embodiment shown in Figure 5C, the logical flow 500C performs one or more of the operations of flow 500C, and in one embodiment, it performs the operations of 502, 504, 506, and 508.

[0103] Logical flow 500C may utilize relevant colors to generate scannable images such as matrices, matrix barcodes, reference markers, or any other suitable images for scanning 530. The scannable images may include one or both ultraviolet and infrared layers, in addition to including non-black and non-white colors (such as the least common and / or non-existent colors related to a target, e.g., the environment). In various embodiments, matrices, matrix barcodes, reference markers, or any other suitable images may be printed and / or embedded on a physical surface using any suitable component, e.g., a printing device 199, with the least common and / or non-existent colors and infrared and / or ultraviolet layers, and the barcode may be scanned along the surface of the physical surface. In other embodiments, any suitable computer device, including a computer, laptop, or tablet (shown in Figure 7 provided below), may be configured to generate scannable barcodes that reflect the least common or non-existent colors, ultraviolet and / or infrared layers. The matrices, matrix barcodes, reference markers, or other suitable images may be scanned along the surface of a computer display.

[0104] In various embodiments, the ultraviolet layer may be initially printed along the physical surface and / or form an uppermost layer generated on a computer screen to maximize the benefits associated with ultraviolet light. In various embodiments, the colors of the scannable image do not have to be environmentally related and / or not based on color space conversion techniques, and can be any color, including standard black and white, using a scannable image that includes both an infrared layer and an ultraviolet layer for detection.

[0105] Figure 5D shows one embodiment of the logical flow 500D. The logical flow 500D may represent some or all of the operations performed by one or more embodiments described herein.

[0106] In the illustrated embodiment shown in Figure 5D, the logic flow can detect a scannable image containing one or more non-black and non-white colors, e.g., a matrix, where each of the non-black and non-white colors is at least one of i) a color that does not exist in relation to the environment, and / or ii) the least common color associated with the environment, in addition to one or both of the ultraviolet and / or infrared layers. In various embodiments, the matrix is ​​a barcode constructed with one or more color space conversion techniques outlined herein, with the addition of an ultraviolet and / or infrared layer, e.g., as described with respect to Figure 5B.

[0107] In various embodiments, a scannable image, e.g., a barcode, may be scanned by any suitable component, e.g., a scanning device 197, which has a suitable key, e.g., a tristimulus equation associated with a conversion to the XYZ color space, and in various embodiments, a color channel having associated colors associated with the scannable portion of the matrix barcode, containing information encoded in the matrix barcode, is revealed. In addition to the key, any suitable component, e.g., the scanning device 197, may also have a verification bit indicating whether the ultraviolet layer and / or infrared layer are associated with the information, and if so, performs a scan and / or decodes the information based on the verification bit. In various embodiments, the barcode may contain four or more distinct colors, each associated with at least four distinct color channels, and each color is different from one another, in addition to having one or both of the ultraviolet layer and / or infrared layer, and also different from the most common colors in the environment, so that the scan may scan six or more bits of information.

[0108] In various embodiments, a barcode may be printed and / or embedded on a physical surface in the least common and / or nonexistent colors using any suitable component, e.g., a printing device 199, and the barcode may be scanned along the surface of the physical surface. In other embodiments, any suitable computing device, including a computer, laptop, or tablet (shown in Figure 7 provided below), may be configured to generate a scannable barcode that reflects the least common or nonexistent colors, and the barcode may be scanned along the surface of the computer display. In various embodiments, the scannable image, e.g., a printed barcode, may have an ultraviolet layer as its top layer, and any associated scan may consider the ultraviolet layer first. Similarly, in various embodiments, if a scannable image is generated by a computer device and displayed by a computer display, the first layer displayed by the computer device may be the ultraviolet layer.

[0109] Logical flow 500D may transmit the scan results to any suitable computer device as discussed herein, including an indication of whether the barcode scan was successful or not, and any associated encoded information obtained in addition thereto.

[0110] Figure 6A shows one technique 600A for forming a scannable image according to at least one embodiment of the present disclosure. Scannable image layers 605a, 610a, and 615a each represent layers of a scannable image, such as a barcode, associated with one or more colors. Any suitable component disclosed herein may perform one or more color space conversion techniques on each scannable image layer 605a, 610a, and 615a to generate layers 620a, 625a, and 630a, and the layers 620a, 625a, and 630a may be integrated into a single scannable image, such as a barcode 635a. In various embodiments, the scannable layers 620a, 625a, and 630a each may be associated with color channels representing one or more colors that do not exist and / or are uncommon with respect to a target that may be associated with the scannable image 635a. In various embodiments, one or more color channels associated with the colors 620a, 625a, and 630a may be orthogonal or perpendicular to each other with respect to the color space representing those colors. The scannable image 635a may be printed on a physical surface of a target using any suitable device and / or generated by any suitable computing device for display on a computer display.

[0111] The embodiment in Figure 6A shows that a conversion technique is performed with respect to the color scheme associated with existing scannable image layers 605a, 610a, and / or 615a, but the scannable image 635a may be generated from scratch without conversion from existing images, for example, by scanning a target and determining the associated color space therefrom, and the final scannable image 635a may be generated by performing one or more color space conversions to the color space as disclosed herein or in other suitable ways.

[0112] Figure 6B shows one technique 600B for forming a scannable image according to at least one embodiment of the present disclosure. Scannable image layers 605b, 610b, and 615b each represent layers of a scannable image, such as a barcode, associated with one or more colors. Any suitable component disclosed herein may perform one or more color space conversion techniques on each scannable image layer 605b, 610b, and 615b to generate layers 620b, 625b, and 630b, and layers 620b, 625b, and 630b may be integrated into a single scannable image 635b, for example, a barcode 635b. In various embodiments, scannable layers 620b, 625b, and 630b may each be associated with color channels representing one or more colors that are not present and / or uncommon with respect to a target that may be associated with the scannable image 635b. In various embodiments, one or more color channels associated with the colors 620b, 625b, and 630b may be orthogonal or perpendicular to each other with respect to the color space representing those colors. In various embodiments, at least one layer, e.g., 630b, may include additional channels of information, e.g., an information ultraviolet or infrared layer, which may be made with ultraviolet or infrared ink or generated using ultraviolet or infrared light and which may absorb, reflect, project, and / or irradiate ultraviolet or infrared light. In various embodiments, the ultraviolet or infrared layer 630b may be a first layer of image 635b. In various embodiments, the ultraviolet or infrared layer 630b may include a color channel layer representing various colors, including uncommon and / or nonexistent colors from a target associated with the scannable image 635b, and in various embodiments, only ultraviolet channels may be associated with the ultraviolet layer 630b.

[0113] In various embodiments, the scannable image 635b may be printed on the physical surface of a target using any suitable device and / or generated by any suitable computer device for display on a computer display.

[0114] In various embodiments, the scannable image 635b is a reference marker that takes advantage of the inherent orientational properties of ultraviolet and / or infrared light when scanned by a suitable device capable of detecting one or both of ultraviolet and / or infrared light. In various embodiments, when a suitable device, e.g., a scanning device 197, scans a reference marker 635b that reflects ultraviolet and / or infrared light, it is easy to determine the spatial relationships of objects associated with the reference marker 635b, such as an object having a reference marker labeled on it and / or a computer display that generates the reference marker 635b, in relation to the scanning device 197 and other objects in the environment including the device, due to the inherent properties related to the reflection and detection of ultraviolet and / or infrared light.

[0115] Figure 6C shows one technique 600C for forming a scannable image according to at least one embodiment of the present disclosure. Scannable image layers 605c, 610c, 615c, and 620c each represent a layer of a scannable image, such as a barcode, associated with one or more colors. Any suitable component disclosed herein may perform one or more color space conversion techniques on each scannable image layer 605c, 610c, 615c, and 620c to generate layers 625c, 630c, 635c, and 640c, and layers 625c, 630c, 635c, and 640c may be integrated into a single scannable image, such as a barcode 645c. In various embodiments, scannable layers 625c, 630c, 635c, and 640c each may be associated with color channels representing one or more colors that do not exist and / or are uncommon with respect to a target that may be associated with the scannable image. In various embodiments, one or more color channels associated with the colors 625c, 630c, 635c, and 640c may be orthogonal or perpendicular to each other with respect to the color space representing those colors.

[0116] In various embodiments, at least one layer, for example 635c, may be made of infrared ink or produced using infrared light, so as to include an additional channel of information that can absorb, reflect, project, and / or irradiate infrared light, for example, an information ultraviolet layer, and in various embodiments, the infrared layer 630c may be the first layer of image 635c. In various embodiments, the infrared layer 630c may include a color channel layer representing various colors, including colors that are uncommon and / or not present in a target associated with the scannable image 645c, and in various embodiments, only infrared channels may be associated with the infrared layer 630d. In various embodiments, at least one layer, for example 640c, may be made of ultraviolet ink or produced using ultraviolet light, so as to include an additional channel of information that can absorb, reflect, project, and / or irradiate ultraviolet light, for example, an information ultraviolet layer, and in various embodiments, the ultraviolet layer 640c may be the first layer of image 645c. In various embodiments, the ultraviolet layer 640c may include a color channel layer that represents a variety of colors, including uncommon and / or nonexistent colors, from a target to be associated with a scannable image 645c, and in various embodiments, only the ultraviolet channels may be associated with the ultraviolet layer 640c.

[0117] In various embodiments, the scannable image 645c is a reference marker that utilizes the inherent orientational properties of ultraviolet and / or infrared light when scanned by a suitable device capable of detecting one or both of ultraviolet and / or infrared light. In various embodiments, when a suitable device, e.g., a scanning device 197, scans a reference marker 645c that reflects both ultraviolet and infrared light, the spatial relationship of the object associated with the reference marker 645c in relation to the scanning device 197 and other objects in the environment including the device, e.g., the object on which the reference marker is labeled and / or the computer display that generates the reference marker 645c, is easily verifiable or detectable due to the inherent properties associated with the reflection and detection of ultraviolet and / or infrared light. In various embodiments where the reference marker 645c utilizes both ultraviolet and infrared light, the presence of both acts as a fail-safe if the functionality of the scanning device 197 is compromised and / or if the initial scan fails to detect one or the other.

[0118] In various embodiments, the scannable image 645c may include both an infrared layer 635c and an ultraviolet layer 640c, and the printing or production of layer 645c may be such that the ultraviolet layer 640c is the first layer to utilize properties associated with ultraviolet light. At least one embodiment provided above shows that one or both of layers 635c and 640c may include color channel information, e.g., scannable colors related to a target, but in various embodiments, layers 635c and 640c may be strictly associated with infrared and / or ultraviolet information, respectively. Furthermore, in various embodiments, the colors of layers 620c, 625c, and 630c do not have to be layers related to a target, and in various embodiments, the layers may consist of black and white colors and / or other colors unrelated to a target and / or not based on color space conversion techniques.

[0119] Figure 7 shows a computer or tablet system 700 for generating and scanning scannable images 740. The tablet system includes a tablet 702 for generating scannable images 740, for example, barcodes, and the tablet 702 includes applications 705A-E, application N, and application 420, one embodiment of application 420 of which is described in more detail above with respect to Figure 4. The tablet 702 may include one or more user interface devices 720 that a user can use to interface with the tablet 702. The tablet 702 may generate scannable images 740 that include either or both an ultraviolet layer and an infrared layer. The tablet 702 may be configured to ensure that the top layer is an ultraviolet layer in order to take advantage of the properties inherent to ultraviolet light. The image may further include one or more layers of color, including white and black layers. The image may further include one or more layers of non-black and non-white colors related to the colors associated with the environment in which the tablet is placed. For example, the tablet may be configured to have a camera with an application that can scan the environment and generate a scannable image 740 having the colors associated with that environment. In various embodiments, the environment-related colors are colors based on one or more color space conversion techniques as discussed herein, including colors that are least common and / or not present in the environment including the tablet 702, and can be determined by one or more color space conversions.

[0120] The system 700 may further include a camera or scanning device c750 capable of scanning a scannable image 740, and in various embodiments, the camera or scanning device c750 may include application 420 (as described above) and / or a color space key and / or infrared verification bits and / or ultraviolet verification bits as disclosed herein, to perform a valid scan of the scannable image 740 and / or to obtain any encoded information associated therewith.

[0121] Figure 8 shows an embodiment of a graphical user interface (GUI) 800 for an application of system 100. In some embodiments, the user interface 800 is configured for application 420 in Figure 4.

[0122] As shown in Figure 8, the GUI 800 includes several components, such as a toolbar 802 and GUI elements. The toolbar 802 includes, as an example tool, a recognition text tool 804 that, when invoked, scans an image 806, for example, a barcode generated from one or more color space technologies and / or including either or both of the ultraviolet and / or infrared layers, as outlined herein. The scan may use a key and / or verification bit to ensure a valid scan is performed, and a proper scan may serve as a security measure for accessing and / or identifying sensitive information 808. As described herein, a suitable color space conversion mechanism provides the most accurate edge detection results because the underlying color space model is more likely to produce edge detection than other applicable color space models and can generate barcodes with this in mind.

[0123] Figure 9 shows an exemplary embodiment of the computing architecture 900 suitable for implementing the various embodiments described above. In one embodiment, the computing architecture 900 may include or be implemented as part of an electronic device. Examples of electronic devices may include, in particular, those described with reference to Figure 3. Embodiments are not limited to this context.

[0124] The terms “system” and “component” as used in this application are intended to refer to any computer-related entity, whether hardware, a combination of hardware and software, software, or running software, examples of which are provided by the exemplary computing architecture 900. For example, a component may be, but is not limited to, a process running on a processor, a processor, a hard disk drive, multiple storage drives (optical and / or magnetic storage media), an object, an executable, an execution thread, a program, and / or a computer. For example, both an application running on a server and the server itself may be components. One or more components may reside within a process and / or an execution thread, and components may be localized to one computer and / or distributed across two or more computers. Furthermore, components may be coupled together in a communicative manner by various types of communication media and their operation may be coordinated. Coordination may include the one-way or two-way exchange of information. For example, components may communicate information in the form of signals communicated over a communication medium. Information may be implemented as signals assigned to various signal lines. In such an assignment, each message is a signal. However, further embodiments may use data messages as an alternative. Such data messages can be transmitted over various connections. Examples of connections include parallel interfaces, serial interfaces, and bus interfaces.

[0125] Computing architecture 900 includes a variety of common computing elements such as one or more processors, multicore processors, coprocessors, memory units, chipsets, controllers, peripherals, interfaces, oscillators, timing devices, video cards, audio cards, multimedia input / output (I / O) components, and power supplies. However, embodiments are not limited to those of computing architecture 900.

[0126] As shown in Figure 9, the computing architecture 900 includes a processing unit 904, system memory 906, and a system bus 908. The processing unit 904 may be any of a variety of commercially available processors, including but not limited to AMD® Athlon®, Duron®, and Opteron® processors, ARM® application, embedded, and secure processors, IBM® and Motorola® DragonBall® and PowerPC® processors, IBM and Sony® Cell processors, Intel® Celeron®, Core®, Core(2)Duo®, Itanium®, Pentium®, Xeon®, and XScale® processors and similar processors. Dual microprocessors, multi-core processors, and other multiprocessor architectures may also be used as the processing unit 904.

[0127] The system bus 908 provides an interface to system components, including but not limited to the system memory 906 and the processing unit 904. The system bus 908 can be one of several types of bus structures that can further interconnect to the memory bus (with or without a memory controller), peripheral bus, and local bus using any of various commercially available bus architectures. Interface adapters can connect to the system bus 908 via slot architectures. Examples of slot architectures include, but are not limited to, Accelerated Graphics Port (AGP), CardBus, Industry Standard Architecture ((E)ISA), Microchannel Architecture (MCA), NuBus, Peripheral Component Interconnect (Extensible) (PCI(X)), PCI Express, and Personal Computer Memory Card International Association (PCMCIA).

[0128] The computing architecture 900 comprises or can be implemented as various products. These products may include computer-readable storage media for storing logic. Examples of computer-readable storage media may include any tangible media capable of storing electronic data, including volatile or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writable or rewritable memory, etc. Examples of logic may include executable computer program instructions implemented using any appropriate type of code, such as source code, compiled code, interpreter code, executable code, static code, dynamic code, object-oriented code, visual code, etc. Embodiments may also be implemented at least in part as instructions contained in or on non-temporary computer-readable media, which can be read and executed by one or more processors to enable the performance of the operations described herein.

[0129] The system memory 906 may include various types of computer-readable storage media in the form of one or more high-speed memory units, such as read-only memory (ROM), random access memory (RAM), dynamic RAM (DRAM), double data rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, ferroelectric polymer memory, ovonic memory, polymer memory such as phase-change or ferroelectric memory, silicon oxide nitride (SONOS) memory, magnetic or optical cards, arrays of devices such as redundant array of independent disks (RAID) drives, solid-state memory devices (e.g., USB memory, solid-state drives (SSDs)), and other types of storage media suitable for storing information. In the illustrated embodiment shown in Figure 9, the system memory 906 may include non-volatile memory 910 and / or volatile memory 912. The non-volatile memory 910 may store the basic input / output system (BIOS).

[0130] Computer 902 may include various types of computer-readable storage media in the form of one or more low-speed memory units, including an internal (or external) hard disk drive (HDD) 914, a magnetic floppy disk drive (FDD) 916 for reading from or writing to a removable magnetic disk 918, and an optical disk drive 920 for reading from or writing to a removable optical disk 922 (e.g., a CD-ROM or DVD). The HDD 914, FDD 916, and optical disk drive 920 may be connected to the system bus 908 by an HDD interface 924, an FDD interface 926, and an optical drive interface 928, respectively. The HDD interface 924 for external drive implementation may include at least one or both of the Universal Serial Bus (USB) and IEEE 1394 interface technologies.

[0131] The drives and associated computer-readable media provide volatile and / or non-volatile storage of data, data structures, computer-executable instructions, etc. For example, a number of program modules may be stored in the drives and memory units 910, 912, including an operating system 930, one or more application programs 932, other program modules 934, and program data 936. In one embodiment, the one or more application programs 932, other program modules 934, and program data 936 may include, for example, various applications and / or components of system 100.

[0132] The user may input commands and information to the computer 902 via one or more wired / wireless input devices, such as a keyboard 938 and a pointing device such as a mouse 940. Other input devices may include a microphone, infrared (IR) remote control, radio frequency (RF) remote control, gamepad, stylus pen, card reader, dongle, fingerprint reader, grab, graphics tablet, joystick, keyboard, retina reader, touchscreen (e.g., capacitive, resistive, etc.), trackball, trackpad, sensor, stylus, etc. These and other input devices are often connected to the processing unit 904 via an input device interface 942 coupled to the system bus 908, but may also be connected via other interfaces such as a parallel port, IEEE 1394 serial port, game port, USB port, IR interface, etc.

[0133] The monitor 944 or other types of display devices are also connected to the system bus 908 via an interface such as the video adapter 946. The monitor 944 may be located inside or outside the computer 902. In addition to the monitor 944, the computer typically includes other peripheral output devices such as speakers and printers.

[0134] Computer 902 may operate in a network environment using logical connections via wired and / or wireless communication to one or more remote computers, such as remote computer 948. The remote computer 948 could be a workstation, server computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other common network node, typically containing many or all of the elements described in relation to computer 902, but for brevity, only the memory / storage device 950 is shown. The logical connections shown include wired / wireless connections to a local area network (LAN) 952 and / or a larger network, such as a wide area network (WAN) 954. Such LAN and WAN network environments are common in offices and businesses and facilitate enterprise-scale computer networks such as intranets. All of these may connect to global communication networks, such as the Internet.

[0135] When used in a LAN networking environment, computer 902 is connected to LAN 952 via a wired and / or wireless network interface or adapter 956. Adapter 956 may facilitate wired and / or wireless communication to LAN 952, which may include a wireless access point placed on it to communicate with the wireless capabilities of adapter 956.

[0136] When used in a WAN networking environment, computer 902 may include a modem 958, or be connected to a communication server on the WAN 954, or have other means of establishing communication on the WAN 954, such as via the Internet. The modem 958 may be internal or external, wired and / or wireless, and connect to the system bus 908 via an input device interface 942. In a network environment, the program modules, or parts thereof, shown with respect to computer 902 may be stored in a remote memory / storage device 950. The shown network connections are illustrative, and it will be understood that other means of establishing communication links between computers may be used.

[0137] Computer 902 is capable of communicating with wired and wireless devices or entities using the IEEE 802 standard family, such as wireless devices configured to operate wirelessly (e.g., IEEE 802.11 wireless modulation technology). This includes at least Wi-Fi (or Wireless Fidelity), WiMAX, and Bluetooth® wireless technologies. Thus, communication can be a predefined structure, similar to conventional networks, or simply ad-hoc communication between at least two devices. Wi-Fi networks provide secure, reliable, and high-speed wireless connectivity using wireless technologies called IEEE 802.11x (a, b, g, n, etc.). Wi-Fi networks can be used to connect computers to each other, to connect to the Internet, or to wired networks (using IEEE 802.3 related media and functions).

[0138] Figure 10 shows a block diagram of an exemplary communication architecture 1000 suitable for implementing the various embodiments described above. The communication architecture 1000 includes various common communication elements such as transmitters, receivers, transceivers, radios, network interfaces, baseband processors, antennas, amplifiers, filters, and power supplies. However, the embodiments are not limited to implementation by the communication architecture 1000.

[0139] As shown in Figure 10, the communication architecture 1000 includes one or more clients 1002 and a server 1004. A client 1002 may implement a client device 310. A server 1004 may implement a server device 950. The client 1002 and the server 1004 are operably connected to one or more respective client data stores 1008 and server data stores 1010, which can be used to store information local to each client 1002 and server 1004, such as cookies and / or associated contextual information.

[0140] Client 1002 and server 1004 can communicate information with each other using the communication framework 1006. The communication framework 1006 can implement any well-known communication technology and protocol. The communication framework 1006 can be implemented as a packet-switched network (e.g., a public network such as the Internet, a private network such as a corporate intranet), a circuit-switched network (e.g., a public switched telephone network), or a combination of a packet-switched network and a circuit-switched network (using appropriate gateways and translators).

[0141] The communication framework 1006 can implement various network interfaces configured to accept, communicate with, and connect communication networks. Network interfaces can be considered special forms of input / output interfaces. Network interfaces can employ connection protocols including, but not limited to, direct connection, Ethernet (e.g., thick, thin, twisted-pair 10 / 100 / 1000-base T, etc.), Token Ring, wireless network interfaces, cellular network interfaces, IEEE 802.11ax network interfaces, IEEE 802.16 network interfaces, and IEEE 802.20 network interfaces. Furthermore, multiple network interfaces can be used to interact with various communication network types. For example, multiple network interfaces can be used to enable communication over broadcast, multicast, and unicast networks. If processing requirements demand greater speed and capacity, a distributed network controller architecture can similarly be used to pool, load balance, or otherwise increase the communication bandwidth required by the client 1002 and server 1004. Communication networks can be any one or combination of wired and / or wireless networks, including but not limited to direct interconnections, secure custom connections, private networks (e.g., enterprise intranets), public networks (e.g., the Internet), personal area networks (PANs), local area networks (LANs), metropolitan area networks (MANs), operational missions as nodes on the Internet (OMNIs), wide area networks (WANs), wireless networks, cellular networks, and other communication networks.

[0142] Some embodiments may be described using the expression “one embodiment” or “embodiment” together with their derivatives. These terms mean that a particular feature, structure, or characteristic described in relation to an embodiment is included in at least one embodiment. The appearance of the phrase “in one embodiment” in various places in this specification does not necessarily all refer to the same embodiment. Furthermore, some embodiments may be described using the expressions “combined” and “connected” together with their derivatives. These terms are not necessarily intended to be synonyms of each other. For example, some embodiments may be described using the terms “connected” and / or “combined” to indicate that two or more elements are in direct physical or electrical contact with each other. However, the term “combined” may also mean that two or more elements are not in direct contact with each other but are still cooperating or interacting with each other.

[0143] It is emphasized that a summary of the disclosure is provided so that readers can quickly confirm the nature of the technical disclosure. It is submitted with the understanding that it cannot be used to interpret or limit the scope or meaning of the claims. Furthermore, it is found that in the aforementioned detailed description, various features are grouped together into a single embodiment for the purpose of streamlining the disclosure. This method of disclosure should not be interpreted as reflecting an intention that the claimed embodiment requires more features than expressly described in each claim. Rather, as reflected in the following claims, the subject matter of the invention lies in fewer features than all the features of a single disclosed embodiment combined. Accordingly, the following claims are incorporated into the detailed description, and each claim stands on its own as a separate embodiment. In the appended claims, the terms “includes” and “in which” are used as plain English equivalents of the respective terms “equip” and “here.” Furthermore, terms such as “first,” “second,” and “third” are used simply as labels and are not intended to impose numerical requirements on the objects.

[0144] The above description includes examples of disclosed architectures. Of course, it is impossible to describe all possible combinations of components and / or methodologies, but those skilled in the art will recognize that many more combinations and permutations are possible. Therefore, novel architectures are intended to encompass all such changes, modifications, and variations that fall within the spirit and scope of the appended claims.

Claims

1. The processor generates a histogram of the environment based on one or more images of the environment, The processor identifies a first plurality of colors in the environment based on the histogram by mapping the first plurality of colors according to a first color space having a first distribution, wherein the first color space is converted to a second color space having a second distribution. The processor determines the associated plurality of colors according to the first color space by determining at least one set of color coordinates for each of the first plurality of colors in the environment according to the second color space, based on the histogram, and determining at least one set of color coordinates corresponding to the associated plurality of colors according to the second color space, wherein the plurality of coordinates of a first set of at least one color among the first plurality of colors are orthogonal and / or at the greatest distance to the plurality of coordinates of the associated plurality of colors in the second color space, and in the environment in the first color space, the first set of at least one color among the first plurality of colors is more common than the set of at least one second color, The processor generates a matrix barcode using the associated multiple colors, A computer implementation method, including

2. The aforementioned related multiple colors include at least one of the colors that do not exist in the environment or the least common color in the environment. The computer implementation method according to claim 1.

3. The aforementioned computer implementation method is: The processor further includes determining a plurality of additional colors, which include a plurality of colors. The first plurality of colors and the associated plurality of colors define the boundary of the second color space, and the plurality of additional colors are within the defined boundary. The matrix barcode is further generated based on the plurality of additional colors. The computer implementation method according to claim 1.

4. The first color space includes the red-green-blue (RGB) color space, The second color space has at least one luminance channel, The computer implementation method according to claim 1.

5. Determining the associated multiple colors based on the histogram involves removing at least one luminance channel. i) At least one set of color coordinates for each of the first plurality of colors according to the second color space, ii) At least one set of color coordinates corresponding to the associated plurality of colors according to the second color space, Including generating at least one of the following, The computer implementation method according to claim 4.

6. The aforementioned computer implementation method is: Determining the associated plurality of colors based on the histogram further includes determining the maximum distance between a plurality of coordinates of the first plurality of colors and a plurality of coordinates of the associated plurality of colors in the second color space. The computer implementation method according to claim 4.

7. The aforementioned matrix barcode is embedded in the computer data. The aforementioned computer data is represented by multiple pixels associated with multiple related colors, The plurality of pixels are associated with at least three color channels that form the matrix barcode. The computer implementation method according to claim 1.

8. A computer-readable storage medium that, when executed by a processor, includes instructions that cause the processor to perform the following operations, The aforementioned operation is, To generate a histogram of the environment based on one or more images of the environment, The first plurality of colors in the environment are determined by mapping the first plurality of colors according to a first color space having a first distribution based on the histogram, wherein the first color space is transformed into a second color space having a second distribution. Determining the associated plurality of colors according to the first color space by determining at least one set of color coordinates for each of the first plurality of colors in the environment according to the second color space based on the histogram, and determining at least one set of color coordinates corresponding to the associated plurality of colors according to the second color space, wherein the plurality of coordinates of the first set of at least one color among the first plurality of colors are orthogonal and / or at the greatest distance to the plurality of coordinates of the associated plurality of colors in the second color space, and in the environment in the first color space, the first set of at least one color among the first plurality of colors is more common than the set of at least one second color, The process involves generating a matrix barcode using the aforementioned multiple related colors, Computer-readable storage media, including [specific data / information].

9. The aforementioned related multiple colors include at least one of the colors that do not exist in the environment or the least common color in the environment. The computer-readable storage medium according to claim 8.

10. The instruction is configured to further instruct the computer to determine a number of additional colors, including multiple colors. The first plurality of colors and the associated plurality of colors define the boundary of the second color space, and the plurality of additional colors are within the defined boundary. The matrix barcode is further generated based on the plurality of additional colors. The computer-readable storage medium according to claim 8.

11. The first color space includes the red-green-blue (RGB) color space, The second color space has at least one luminance channel. The computer-readable storage medium according to claim 8.

12. Determining the associated multiple colors based on the histogram involves removing at least one luminance channel. i) At least one set of color coordinates for each of the first plurality of colors according to the second color space, ii) At least one set of color coordinates corresponding to the associated plurality of colors according to the second color space, Including generating at least one of the following, The computer-readable storage medium according to claim 11.

13. Determining the associated plurality of colors based on the histogram further includes determining the maximum distance between a plurality of coordinates of the first plurality of colors and a plurality of coordinates of the associated plurality of colors in the second color space. The computer-readable storage medium according to claim 11.

14. The aforementioned matrix barcode is embedded in the computer data. The computer data is represented by a plurality of pixels associated with the plurality of related colors, The plurality of pixels are associated with at least three color channels of the matrix barcode. The computer-readable storage medium according to claim 8.

15. A computing device equipped with a processor, The aforementioned computing device is The memory, when executed by the aforementioned processor, stores instructions that cause the processor to perform the following operations: The aforementioned operation is, To generate a histogram of the environment based on one or more images of the environment, Identifying the first plurality of colors in the environment by mapping the first plurality of colors according to a first color space having a first distribution based on the histogram, wherein the first color space is converted to a second color space having a second distribution. The processor determines the associated plurality of colors according to the first color space by determining, based on the histogram, at least one set of color coordinates for each of the first plurality of colors according to the second color space, and at least one set of color coordinates corresponding to the associated plurality of colors according to the second color space, wherein the plurality of coordinates of a first set of at least one color among the first plurality of colors are orthogonal and / or at the maximum distance to the plurality of coordinates of the associated plurality of colors in the second color space, and in the environment of the first color space, the first set of at least one color among the first plurality of colors is more common than the set of at least one second color, The process involves generating a matrix barcode using the aforementioned multiple related colors, A computing device that includes this.

16. The aforementioned related multiple colors include at least one color that does not exist in the environment, or the least common color in the environment. The arithmetic device according to claim 15.

17. The aforementioned instruction further constitutes a device that performs the following operations: The aforementioned operation is, This further includes determining multiple additional colors, including multiple colors. The first plurality of colors and the associated plurality of colors define the boundary of the second color space, and the plurality of additional colors are within the defined boundary. The matrix barcode is further generated based on the multiple additional colors, including, The arithmetic device according to claim 15.

18. The first color space includes the red-green-blue (RGB) color space, The second color space has at least one luminance channel, The arithmetic device according to claim 15.

19. Determining the associated multiple colors based on the histogram involves removing at least one luminance channel. i) At least one set of color coordinates for each of the first plurality of colors according to the second color space, ii) At least one set of color coordinates corresponding to the associated plurality of colors according to the second color space, Including generating at least one of the following, The computing device according to claim 18.

20. Determining the associated plurality of colors based on the histogram further includes determining the maximum distance between a plurality of coordinates of the first plurality of colors and a plurality of coordinates of the associated plurality of colors in the second color space. The computing device according to claim 18.

Citation Information

Patent Citations

  • Method, system and device for arranging images in electronic document and computer readable storage medium

    JP2006099767A

  • Techniques for positioning images in electronic documents

    US20060072779A1