Abstract:
A method for improved, automated, repeatable color matching on materials with different properties is provided. The method includes color matching on different materials using acquired, manipulated, and synthetic reflectance curve data. In one example, resulting synthesized reflectance data is employed in formulating a matching colorant. An example method uses a spectrophotometer to collect reflectance curve data from a physical sample colored to a desired color. The reflectance curve data is employed to produce computer display outputs of substrates as they would be appear if colored with the desired color. The method includes using a colorimeter to collect calorimetric data from the outputs on the display. The sets of colorimetric data are compared and data that facilitate manipulating the reflectance curve data associated with the desired color is produced. The synthetic reflectance curve data facilitates producing matches for the various substrates as colored and displayed on the computer display. The synthetic reflectance curve data may also be used to manipulate colorant formulae. It is emphasized that this abstract is provided to comply with the rules requiring an abstract that will allow a searcher or other reader to quickly ascertain the subject matter of the application. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims.

Description:
TECHNICAL FIELD  
       [0001]     The systems, methods, application programming interfaces (API), graphical user interfaces (GUI), data packets, and computer readable media described herein relate generally to computer programming and more particularly to acquiring and manipulating reflectance curve data to facilitate matching colors on materials with different properties (e.g., texture, construction).  
       BACKGROUND  
       [0002]     Materials with different properties like texture, construction, opacity, and so on reflect light differently. Thus, when the same colorant is applied to materials with different properties the two colored materials may have different appearances. For example, a first shade of blue paint, applied to a substantially smooth surface may have a different appearance than the same shade of blue paint when applied to a textured surface. Similarly, a first shade of red dye may yield a first appearance when applied to a cotton knitted garment and a second appearance when applied to a cotton woven garment. Apparent color mismatches are also evidenced in color matching that attempts to cross product lines. For example, a first shade of green may have a first appearance on a football jersey, a second appearance on a poster promoting the team with the green jerseys, a third appearance on a toy rubber football promoting the team with the green jerseys, a fourth appearance on a promotional foam finger, a fifth appearance on a team key chain, a sixth appearance on a cotton baby outfit, and so on. Ideally, to enhance marketing and promotion, the green would appear substantially identical on all products, regardless of the material and/or substrate on which the color appears.  
         [0003]     Matching colors on materials with different properties has historically been undertaken in applications including, but not limited to, textile dyeing, leather tanning, leather dying, plastics master-batching, coatings, point of sale paints, trade sale paints, wood stains and so on. Typically, color matching on materials with different properties has relied on a human technician applying intuition, experience and ad hoc methods. Thus, varying results may be attained due to the varying levels of technician experience, skill, visual capacity for discerning color differences, and estimating—based on experience in color matching—the combination and proportions of colorants employed to match a color on two or more substrates. By way of illustration, a color formula for a latex paint may be an ideal match when the paint is applied to a flat, non-porous surface. However, when the same latex paint is applied to a highly textured surface, it will appear to be unacceptably off-color. Commercially this causes customer complaints, returns and so on.  
       SUMMARY  
       [0004]     Improved, automated, repeatable methods for color matching on materials with different properties is desired. Thus, the following summary presents a simplified overview of methods, systems, computer readable media and so on for automated color matching on different materials using acquired, manipulated, and synthetic reflectance curve data to facilitate providing a basic understanding of these items. This summary is not an extensive overview and is not intended to identify key or critical elements of the methods, systems, computer readable media, and so on or to delineate the scope of these items. This summary provides a conceptual introduction in a simplified form as a prelude to the more detailed description that is presented later.  
         [0005]     The application describes systems and methods for determining a predicted color match between dissimilar materials using reflectance data from a “standard object” and an electronically computed “compensation” to the “standard” color derived from digital imaging on a calibrated computer monitor (e.g., cathode ray tube (CRT) or other similar device for displaying computer output) that equalizes the observed color in and/or on materials with different surface qualities. In one example, the resulting synthesized reflectance data is then employed in formulating a matching colorant.  
         [0006]     One example method includes using a spectrophotometer to collect measurement data, in the form of a reflectance curve data, from an actual physical sample colored to the desired color. The method includes accessing a computer on which digital images, representations, and/or models of various substrates are stored. The digital images, representations, and/or models of the various substrates are stored in the computer in a manner that facilitates producing an output on a computer display, where the output will be the substrate as it would appear when colored with the color on the actual physical sample from which the reflectance curve data was acquired using the spectrophotometer.  
         [0007]     Thus, the example method includes producing an output on the display of a first substrate as it would be appear if colored with the color on the actual physical sample from which the reflectance curve data was acquired using the spectrophotometer. The example method then includes using a calorimeter to collect calorimetric data from the output on the display, where the calorimetric data can be employed to characterize, evaluate, measure and/or record the color of the first substrate produced on the output display.  
         [0008]     The method then includes producing an output on the display of a second substrate as it would be appear if colored with the color on the actual physical sample from which the reflectance curve data was acquired using the spectrophotometer. The example method then includes using a colorimeter to collect calorimetric data from the output on the display, where the calorimetric data can be employed to characterize, evaluate, measure and/or record the color of the second substrate produced on the output display.  
         [0009]     Once the colorimetric data has been acquired for the two substrates as rendered by the color from the actual physical sample, the two sets of calorimetric data can be processed to determine similarities and/or differences between the two colors produced on the output display. In one example, a compensation value is produced that facilitates creating synthetic reflectance curve data. The synthetic reflectance curve data can then be employed to manipulate the original reflectance curve data acquired from the actual physical object that was colored to the desired color. The synthetic reflectance curve data thus facilitates matching the output appearance of the second substrate as colored to the first substrate as colored. Once a match has been made to within a predetermined, configurable tolerance, the synthetic reflectance curve data can then be employed to develop, update, and/or modify, for example, a colorant formula, to facilitate matching the apparent color on two different physical items with different properties.  
         [0010]     Certain illustrative example methods, systems, computer readable media and so on are described herein in connection with the following description and the annexed drawings. These examples are indicative, however, of but a few of the various ways in which the principles of the methods, systems, computer readable media and so on may be employed and thus are intended to be inclusive of equivalents. Other advantages and novel features may become apparent from the following detailed description when considered in conjunction with the drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0011]      FIG. 1  illustrates specular reflection of light.  
         [0012]      FIG. 2  illustrates diffuse reflection of light.  
         [0013]      FIG. 3  illustrates regular transmission of light.  
         [0014]      FIG. 4  illustrates diffuse transmission of light.  
         [0015]      FIG. 5  illustrates specular and diffuse reflection from various surfaces of a sample.  
         [0016]      FIG. 6  illustrates color perception as affected by reflection of light from a sample with a substantially smooth surface.  
         [0017]      FIG. 7  illustrates color perception as affected by reflection of light from a sample with an irregular surface.  
         [0018]      FIG. 8  illustrates an example system for matching colors on materials with different properties.  
         [0019]      FIG. 9  illustrates an example system for matching colors on materials with different properties.  
         [0020]      FIG. 10  illustrates an example method for matching colors on materials with different properties.  
         [0021]      FIG. 11  illustrates an example method for matching colors on materials with different properties.  
         [0022]      FIG. 12  illustrates an example screen shot from a program for matching colors on materials with different properties.  
         [0023]      FIG. 13  illustrates an example screen shot from a program for matching colors on materials with different properties.  
         [0024]      FIG. 14  illustrates an example screen shot from a program for matching colors on materials with different properties.  
         [0025]      FIG. 15  is a schematic block diagram of an example computing environment on which the example methods can be implemented.  
         [0026]      FIG. 16  illustrates an example data packet for communicating information between computer components involved in matching colors on materials with different properties.  
         [0027]      FIG. 17  illustrates example data packet subfields for communicating information between computer components involved in matching colors on materials with different properties.  
         [0028]      FIG. 18  illustrates an example application programming interface employed to facilitate communications with a color matching system.  
     
    
     DETAILED DESCRIPTION  
       [0029]     Example systems, methods, computer media, and so on are now described with reference to the drawings, where like reference numerals are used to refer to like elements throughout. In the following description for purposes of explanation, numerous specific details are set forth in order to facilitate thoroughly understanding the methods, systems and computer readable media. It may be evident, however, that the methods, systems and computer readable media can be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to simplify description.  
         [0030]     As used in this application, the term “computer component” refers to a computer-related entity, either hardware, firmware, software, a combination thereof, or software in execution. For example, a computer component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program and a computer. By way of illustration, both an application running on a server and the server can be computer components. One or more computer components can reside within a process and/or thread of execution and a computer component can be localized on one computer and/or distributed between two or more computers.  
         [0031]     “Computer communications”, as used herein, refers to a communication between two or more computer components and can be, for example, a network transfer, a file transfer, an applet transfer, an email, a hypertext transfer protocol (HTTP) message, a datagram, an object transfer, a binary large object (BLOB) transfer, and so on. A computer communication can occur across, for example, a wireless system (e.g., IEEE 802.11), an Ethernet system (e.g., IEEE 802.3), a token ring system (e.g., IEEE 802.5), a local area network (LAN), a wide area network (WAN), a point-to-point system, a circuit switching system, a packet switching system, and so on.  
         [0032]     “Logic”, as used herein, includes but is not limited to hardware, firmware, software and/or combinations of each to perform a function(s) or an action(s). For example, based on a desired application or needs, logic may include a software controlled microprocessor, discrete logic such as an application specific integrated circuit (ASIC), or other programmed logic device. Logic may also be fully embodied as software.  
         [0033]     “Signal”, as used herein, includes but is not limited to one or more electrical or optical signals, analog or digital, one or more computer instructions, a bit or bit stream, or the like.  
         [0034]     “Software”, as used herein, includes but is not limited to, one or more computer readable and/or executable instructions that cause a computer, computer component, and/or other electronic device to perform functions, actions and/or behave in a desired manner. The instructions may be embodied in various forms like routines, algorithms, modules, methods, threads, and/or programs. Software may also be implemented in a variety of executable and/or loadable forms including, but not limited to, a stand-alone program, a function call (local and/or remote), a servelet, an applet, instructions stored in a memory, part of an operating system or browser, and the like. It is to be appreciated that the computer readable and/or executable instructions can be located in one computer component and/or distributed between two or more communicating, co-operating, and/or parallel processing computer components and thus can be loaded and/or executed in serial, parallel, massively parallel and other manners. It will be appreciated by one of ordinary skill in the art that the form of software may be dependent on, for example, requirements of a desired application, the environment in which it runs, and/or the desires of a designer/programmer or the like.  
         [0035]     An “operable connection” (or a connection by which entities are “operably connected”) is one in which signals, physical communication flow, and/or logical communication flow may be sent and/or received. Usually, an operable connection includes a physical interface, an electrical interface, and/or a data interface, but it is to be noted that an operable connection may consist of differing combinations of these or other types of connections sufficient to allow operable control.  
         [0036]     “Database”, as used herein, refers to a collection of information organized in such a way that a computer program can quickly select desired pieces of data.  
         [0037]     “Data store”, as used herein, refers to a physical and/or logical entity that can store data. A data store may be, for example, a database, a table, a file, a list, a queue, a heap, and so on. A data store may reside in one logical and/or physical entity and/or may be distributed between two or more logical and/or physical entities.  
         [0038]     “Display”, as used herein, refers to a color rendering device that is calibrated and/or characterized. It is contemplated that a display is any form of direct-view or projected display including, for example, a cathode ray tube (CRT), liquid crystal display (LCD), organic light emitting diode (OLED), and a plasma display. Also, it is to be understood that the term display is intended to include printed reproductions.  
         [0039]     “Colorimetric data”, as used herein, refers to any quantities derived from spectrophotometric data, including the tristimulus quantities that are subsumed by more restricted definitions of calorimetric data.  
         [0040]     It will be appreciated that some or all of the processes and methods of the system involve electronic and/or software applications that may be dynamic and flexible processes so that they may be performed in other sequences different than those described herein. It will also be appreciated by one of ordinary skill in the art that elements embodied as software may be implemented using various programming approaches such as machine language, procedural, object oriented, and/or artificial intelligence techniques.  
         [0041]     The processing, analyses, and/or other functions described herein may also be implemented by functionally equivalent circuits like a digital signal processor (DSP), a software controlled microprocessor, or an ASIC. Components implemented as software are not limited to any particular programming language. Rather, the description herein provides the information one skilled in the art may use to fabricate circuits or to generate computer software and/or computer components to perform the processing of the system. It will be appreciated that some or all of the functions and/or behaviors of the present system and method may be implemented as logic as defined above.  
         [0042]     This application concerns improved, automated, repeatable methods for color matching on materials with different properties. The application describes example systems and methods for determining a predicted color match between dissimilar materials using reflectance data acquired from a “standard object”. Reflectance data is acquired, in one example, as a reflectance curve from a spectrophotometer. In general, the data acquired from the spectrophotometer can be referred to as “spectrophotometric data”, one example of which is a reflectance curve. A spectrophotometer is used to acquire spectrophotometric data from a physical sample that has been colored to a desired color. Then, to match the desired color on other substrates, a database of digital images of substrates is accessed. One or more digital images of substrates are electronically “colored” according to the spectrophotometric data and displayed on a computer monitor or similar display device. The coloring is performed by a computer component.  
         [0043]     A colorimeter is employed to acquire colorimetric data associated with the display on the computer monitor or similar display device. For one or more calorimetric data sets, a compensation value is programmatically and/or electronically computed. The compensation value facilitates equalizing the color observed on one or more materials with different properties so that those materials with different properties, after being colored, will appear to be the same color as the color on the actual physical sample that has the desired color. In one example, the compensation value is used as an input to a computer component that computes a synthetic reflectance curve for the color that should be applied to a material to make it match the color on the actual sample. In one example, the resulting synthesized reflectance curve is employed to formulate a matching colorant (e.g., paint, dye, ink). While paints, dyes, and inks are associated with the term “colorant”, it is to be appreciated that “colorant” is not limited to these three examples.  
         [0044]      FIGS. 1 through 7  facilitate understanding properties of light that lead to color discrepancies between materials with different properties.  FIG. 1  illustrates specular reflection. A light source  100  produces a light wave  110  that interacts with a sample  120 . One possible path for the light wave  110  to take is to be reflected as light wave  130 . This is specular reflection. However, not all materials will produce the same specular reflection.  
         [0045]      FIG. 2  illustrates diffuse reflection. A light source  200  produces a light wave  210  that interacts with a sample  220 . Rather than being specularly reflected as in  FIG. 1 , the light wave  210  is diffused into several resulting light waves  230 . This is diffuse reflection. Again, not all materials will produce the same diffuse reflection. The character and amount of light specularly reflected and diffusely reflected from a sample can depend, for example, on the surface properties of the sample (e.g., smoothness, roughness, texture, shininess, opacity). Not all light interacting with a sample may be reflected. Some may be transmitted by the sample.  
         [0046]      FIG. 3  illustrates regular transmission of light. A light source  300  produces a light wave  310  that interacts with a sample  320 . Rather than being reflected, this light wave passes through the sample and is transmitted as light wave  330 . This is regular transmission. Not all materials that transmit light will do so in the same way. Some will transmit the light after diffusing it.  
         [0047]      FIG. 4  illustrates diffuse transmission. A light source  400  produces a light wave  410  that interacts with a sample  420 . Rather than a single light wave being transmitted, as illustrated in  FIG. 3 , multiple light waves  430  are transmitted at various angles and with various phases. Again, not all materials that transmit light will do so with the same amount and/or type of diffuse transmission. Thus,  FIGS. 1 through 4  illustrate four possible results of light interacting with a sample.  
         [0048]      FIG. 5  illustrates four results occurring substantially simultaneously as a result of various interactions with a sample. A light source  500  produces a set of light waves  510 . A first interaction, specular reflection off the surface of the sample  520 , results in a light wave  530 . A second interaction, diffuse reflection off the surface of the sample  520 , results in the set of waves  550 . A third interaction, specular reflection with the bottom of the sample  520  results in a light wave  540 . A fourth interaction, diffuse reflection off the bottom of the sample  520  results in the set of waves  560 . Thus, it is to be appreciated that the light waves reflected from a sample can be due to complicated sets of interactions with light that the sample encounters. While  FIG. 5  illustrates four reflections, it is to be appreciated that light could also be transmitted from the sample  520  and/or its various surfaces creating an even more complex situation. Thus, it is understandable that colors do not appear the same when applied to materials with different properties due to the varying reflection and/or transmission exhibited by materials with different properties.  
         [0049]     One of the properties that affects the apparent color of an object is the texture of the surface. We are all familiar with how glossy photographs appear different from matte photographs. Thus,  FIGS. 6 and 7  illustrate this phenomenon, which impacts color matching on materials with different properties.  FIG. 6  illustrates a light source  600  producing a light wave  610  that interacts with a sample  620  that has a substantially smooth surface. Assume that the sample  620  has been colored with a blue paint. The smoothness of the surface, and/or other properties, lead to the light wave  610  being specularly reflected as light wave  630 . Thus, light waves  640  being observed at a viewing position  650  will not be influenced by the light from the light source  600 , and the sample  620  will be observed to have a first color.  
         [0050]      FIG. 7  illustrates a light source  700  producing a light wave  710  that interacts with a sample  720  that does not have a substantially smooth surface. Assume that the sample  720  has been colored with exactly the same paint employed to color sample  620 . Intuitively we expect the two samples to appear to be the same color. Experience teaches us otherwise.  FIG. 7  explains our experience. The texture of the surface, and/or other properties, lead to the light wave  710  being diffused into the set of light waves  730 . Thus, light waves  740  being observed at a viewing position  750  will be influenced by the light from the light source  700 , and the sample  720  will be observed to have a second color, different from that of  FIG. 6 .  
         [0051]     Turning now to  FIG. 8 , an example system  800  for matching colors on materials with different properties is illustrated. The system  800  includes a computer  810  that receives spectrophotometric data  820  from, for example, a spectrophotometer. The spectrophotometric data  820  may be acquired substantially simultaneously with performing the color matching, or it may be acquired at a point in time remote from the color matching. For example, spectrophotometric data may be acquired at a first time (e.g., June), at a first location (e.g., scanning a clothing artifact unearthed during an archeological trip to Machu Pichu) from an article of clothing made from a first fabric (e.g., llama wool). The spectrophotometric data may then be stored for later use (e.g., August) to manufacture a reproduction garment made of a second material (e.g., nylon). Thus, the computer  810  may receive the spectrophotometric data in various ways, in various formats at various times.  
         [0052]     The spectrophotometric data  820  may be of a “reference sample” or “actual physical sample” that has been colored to a “desired color”. In one example, a fabric sample is placed on a flatbed scanner and the image data  820  is acquired from the flatbed scanner. While a flatbed scanner is described, it is to be appreciated that other image capturing devices can be employed. The image data  820  is then transformed by the software into, for example, a reflectance curve. In one example, the spectral reflectance measurement of a target color on the standard substrate is obtained using a spectrophotometer. The spectral reflectance is represented by R(λ) or R(λ i ), i=1, 2, . . . n, where n is the total number of the wavelengths.  
         [0053]     The computer  810  receives the spectrophotometric data generated from the image data  820  and accesses a data store  830 . The data store  830  (e.g., a database), stores one or more representations (e.g., digital images) that correspond to various materials having various properties (e.g., texture, opacity, shininess). The computer  810  generates an image to display on a display  840 . The image is generated by applying the spectrophotometric data to one or more of the digital images corresponding to various materials. The spectrophotometric data is applied to the digital image programmatically by the computer  810 . The digital image to which the spectrophotometric data is applied can be chosen, for example, by a user interfacing with a graphical user interface. Additionally, and/or alternatively, the digital image could be programmatically selected.  
         [0054]     As the image is displayed on the display  840 , calorimetric data  850  is acquired from the display  840 . For example, a device known as a CRT analyzer, (e.g., calorimeter for measuring the color output of a cathode ray tube like a television or computer monitor) acquires the colorimetric data  850 . Alternative color measurement devices may be employed to acquire this data, and alternative color display devices may be employed. The data may be, for example, in the xyY value form or comparable colorimetric equation (e.g., ΔX=X t −X s , ΔY=Y t −Y s , ΔZ=Z t −Z s ).  
         [0055]     The calorimetric data  850  is fed back into the computer  810  and/or to one or more other cooperating computer components and stored for future comparison to other colorimetric data  850  acquired from other images displayed on display  840 . While one computer  810  is illustrated, it is to be appreciated that the processing performed by computer  810  may be performed in one computer and/or computer component and/or could be distributed between two or more communicating, co-operating computer components.  
         [0056]     One or more second digital images can be retrieved from the data store  830 , colored with the spectrophotometric data  820  and displayed on the display  840 . Thus, one or more second sets of calorimetric data  850  can be acquired from the display  840  and fed back to the computer  810  and/or distributed to one or more other computer components.  
         [0057]     After two or more sets of colorimetric data  850  have been collected, the computer  810 , and/or one or more other cooperating computer components can compute a synthetic reflectance curve  860  that describes the color that needs to be displayed on a second material to make that second material appear the same color as an object of a first material that has been colored to the desired color. In one example, a compensation value is computed by the computer  810  to facilitate matching the colors, and from the compensation value the synthetic reflectance curve  860  is generated.  
         [0058]      FIG. 9  illustrates an example system  900  for matching colors on materials with different properties. The system  900  includes a computer  930 . The computer  930  receives spectrophotometric data from a spectrophotometer  910 . The spectrophotometer  910  acquires spectrophotometric data (e.g., a reflectance curve) that characterizes a sample  920  that has been colored to a desired color. This configuration may be found, for example, in industrial settings (e.g., textile plant, paint factory, plastics factory) and/or other settings.  
         [0059]     The computer  930  receives the spectrophotometric data and accesses an image data store  940 . The image data store  940  stores one or more digital images that correspond to various materials having various properties (e.g., textures, opacity, shininess). For example, digital representations of various cottons with various weaves, thread counts, and thread sizes may be stored. The computer  930  generates an image to display on a display  950 . The image is generated by applying the spectrophotometric data acquired from the spectrophotometer  910  to one or more of the digital images. The digital image to which the spectrophotometric data is applied can be chosen, for example, by a user interfacing with a graphical user interface. Additionally, and/or alternatively, the digital image could be programmatically selected. Furthermore, the digital image could be selected by a fabric analyzer (not illustrated) that analyzes a piece of fabric and determines which stored digital image corresponds to the analyzed fabric.  
         [0060]     As the image is displayed on the display  950 , colorimetric data is acquired from the display  950  by a colorimeter  960 . The calorimeter  960  feeds back the calorimetric data to the computer  930  and/or to one or more other cooperating computer components where it is stored for future comparison to other colorimetric data acquired from other images displayed on display  950  and/or other related displays. While one computer  930  is illustrated, it is to be appreciated that the processing performed by computer  930  may be performed in one computer and/or computer component and/or could be distributed between two or more communicating, co-operating computer components. Furthermore, while one spectrophotometer  910  and one colorimeter  960  are illustrated, it is to be appreciated that computer  930  could receive inputs from one or more of each of the illustrated devices. Similarly, while one display  950  is illustrated, images could be displayed on two or more displays and colorimetric data acquired from those displays.  
         [0061]     One or more second digital images can be retrieved from the image data store  940 , colored with the spectrophotometric data and displayed on the display  950 . Thus, one or more second sets of colorimetric data can be acquired from the display  950  by the colorimeter  960  and fed back to the computer  930  and/or distributed to one or more other computer components.  
         [0062]     After two or more sets of colorimetric data have been collected, the computer  930 , and/or one or more other cooperating computer components can compute a synthetic reflectance curve that describes the color that needs to be displayed on a second material to make that second material appear the same color as an object comprised of a first material that has been colored to the desired color. In one example, a compensation value is computed, and from the compensation value the synthetic reflectance curve is generated.  
         [0063]     In one example, the system  900  also includes a formula data store  980  and a formulator  970 . The formulator  970  accepts the compensation value and/or the synthetic reflectance curve and computes a formula for a colorant that can be applied to a second material with second properties to make it appear the same color as the sample  920 , which was of a first material with first properties.  
         [0064]     In view of the exemplary systems shown and described herein, example methodologies that are implemented will be better appreciated with reference to the flow diagrams of  FIGS. 10 and 11 . While for purposes of simplicity of explanation, the illustrated methodologies are shown and described as a series of blocks, it is to be appreciated that the methodologies are not limited by the order of the blocks, as some blocks can occur in different orders and/or concurrently with other blocks from that shown and described. Moreover, less than all the illustrated blocks may be required to implement an example methodology. Furthermore, additional and/or alternative methodologies can employ additional, not illustrated blocks. In one example, methodologies are implemented as computer executable instructions and/or operations, stored on computer readable media including, but not limited to an application specific integrated circuit (ASIC), a compact disc (CD), a digital versatile disk (DVD), a random access memory (RAM), a read only memory (ROM), a programmable read only memory (PROM), an electronically erasable programmable read only memory (EEPROM), a disk, a carrier wave, and a memory stick.  
         [0065]     In the flow diagrams, rectangular blocks denote “processing blocks” that may be implemented, for example, in software. Similarly, the diamond shaped blocks denote “decision blocks” or “flow control blocks” that may also be implemented, for example, in software. Alternatively, and/or additionally, the processing and decision blocks can be implemented in functionally equivalent circuits like a digital signal processor (DSP), an ASIC, and the like.  
         [0066]     A flow diagram does not depict syntax for any particular programming language, methodology, or style (e.g., procedural, object-oriented). Rather, a flow diagram illustrates functional information one skilled in the art may employ to program software, design circuits, and so on. It is to be appreciated that in some examples, program elements like temporary variables, initialization of loops and variables, routine loops, and so on are not shown. Furthermore, while some steps are shown occurring serially, it is to be appreciated that some illustrated steps may occur substantially in parallel.  
         [0067]      FIG. 10  illustrates a method  1000  for matching colors on materials with different properties. At  1010 , the method includes acquiring spectrophotometric data. The data may be received, for example, from a physical sample that has been colored to a desired color. Additionally, and/or alternatively, the data may be received from a computer component and/or a data store. In one example, the spectral reflectance measurement of a target color on the standard substrate is obtained using a spectrophotometer. The spectral reflectance is represented by R(λ) or R(λ i ), i=1, 2, . . . , n where n is the total number of the wavelengths.  
         [0068]     At  1020 , the method includes acquiring a digital image of a substrate. The digital image may be stored, for example, in a substrate data store (e.g., database). The substrate may be, for example, a computer image of a fabric, a plastic, a plaster, a wood, a rubber, and so on. The computer image may be, for example, acquired from a scanner, produced programmatically by a programmer, produced graphically by an artist, and so on. The digital image has a form that facilitates “coloring” the image with spectrophotometric data. In one example, The image of the standard substrate is obtained using an image-capture device. The RGB value on each pixel of the image is represented by 
 
{ R   s0   , G   s0   , B   s0 } i   , i= 1,2 , . . . , M;  
 
 where M is the total number of pixels in the image. 
 
         [0069]     Thus, at  1030 , an image is generated from the spectrophotometric data and the digital image. In one example, the image is displayed substantially simultaneously as it is generated. In another example, the image is stored for subsequent display.  
         [0070]     At  1040 , first calorimetric data is acquired from the image display. For example, the image may be displayed on a computer monitor with which a colorimeter has been associated. Thus, the colorimeter can analyze the displayed image, produce calorimetric data and supply it to the method.  
         [0071]     At  1050 , another digital image of another substrate is acquired. This digital image will likely correspond to a target material that the user would like to have appear as the same color as the reference sample from which the spectrophotometric data was acquired. In one example, the image of the target substrate is also obtained using an image-capture device. The RGB value on each pixel of this image is represented by 
 
{ R   t0   , G   t0   , B   t0 } i   , i= 1, 2 , . . . , N.  
 
         [0072]     The N may or may not be equal to M.  
         [0073]     At  1060 , a second image is generated by applying the spectrophotometric data to the digital image. Again, the second image may be displayed substantially as soon as it is generated and/or it may be stored for subsequent display and analysis.  
         [0074]     At  1070 , second colorimetric data is acquired from the display of the second image. Now the method  1100  has two or more sets of calorimetric data associated with displayed images. One set of calorimetric data is associated with the computer display of a reference sample that has been colored to a desired color. One or more other sets of colorimetric data are associated with computer displays of simulated samples that have been colored according to spectrophotometric data retrieved from the reference sample. Thus, at  1080 , the first colorimetric data and the second colorimetric data(s) are compared to determine what differences, if any, exist between the displays. In one example, the method calculates the image of the target color on the standard substrate. For example, the RGB value of image pixels is calculated as: 
 
{ R   s   , G   s   , B   s } i =ƒ({ R   s0   , G   s0   , B   s0 } i   , R (λ)) For  i= 1,2 , . . . , M  
 
 where the function ƒ represents an algorithm. The algorithm includes using the calibration profile of the displaying device. 
 
         [0075]     Using the calculated {R s , G s , B s } i , i=1,2, . . . , M, the image of the target color on the standard substrate is displayed on the calibrated device. Using the same algorithm, the image of the target color on the target substrate is calculated. 
 
{ R   t   , G   t   , B   t } i =ƒ({ R   t0   , G   t0   , B   t0 } i   , R (λ)), For  i= 1,2 , . . . , N.  
 
         [0076]     The calculated image {R t , G t , B t } i , i=1, 2, . . . , M is also displayed on the calibrated device. Measuring the two images on the display screen using a colorimeter, the calorimetric data from both the images are obtained. Assuming the obtained data are the tristimulus values, the measurement of the color on the standard and the target substrates are represented by {X s , Y s , Z S } and {X t , Y t , Z t } respectively.  
         [0077]     At  1090 , based on the differences, a synthetic reflectance curve is generated. This synthetic reflectance curve facilitates producing a color that when applied to the second simulated substrate will make its display appear substantially similar to the color of the first image. Thus, matching colors on materials with different properties is automated, made more accurate and more repeatable.  
         [0078]     In one example, method  1000  continues to  1099 , where a formula for a colorant is produced. The formula may be, for example, for an ink, a dye, a paint, and so on. The formula can be produced by using the synthetic reflectance curve of  1090 . In one example, the method calculates the differences between the tristimulus values using, for example: 
 
Δ X=X   t   −X   s   , ΔY=Y   t   −Y   s   , ΔZ=Z   t   −Z   s . 
 
         [0079]     The method then calculates the change in the spectral reflectance, R(λ), of the target color if the substrate is switched from the standard substrate to the target substrate using, for example: 
 
Δ R (λ)= g ( R (λ), λ X, ΔY, ΔZ);  
 
 where the function g represents an algorithm. This algorithm may also use the calibration profile of the displaying device. The method can then calculate the adjusted spectral reflectance for the target color on the target substrate using, for example: 
 
 R ′(λ i )= R (λ i )+Δ R (λ i );  i= 1, 2 , . . . , n  
 
         [0080]     Turning now to  FIG. 11 , another example method  1100  for matching colors on materials with different properties is illustrated. At  1110 , the method acquires spectrophotometric data of a desired color on a physical sample. For example, a piece of cloth could be placed on a flatbed scanner and an image data acquired from which a reflectance curve can be generated. At  1120 , the method includes generating a first output color. The first output color is generated by applying the spectrophotometric data to a first simulated substrate. For example, a digital image could be retrieved from a database of digital images of substrates and colored according to the spectrophotometric data.  
         [0081]     At  1130 , colorimetric data associated with the first output color is acquired. For example, if the first output color was displayed on a computer monitor, then a calorimeter could analyze the computer monitor display and acquire calorimetric data of the displayed color. With the spectrophotometric data and colorimetric data for the “reference sample” acquired, the method  1100  then enters a loop. In the loop, one or more additional colors are generated, displayed, and analyzed to acquire calorimetric data. For each of the additional colors that are generated, displayed, and analyzed, a synthetic reflectance curve is generated. The synthetic reflectance curve facilitates producing a color that when applied to a simulated substrate will make that simulated substrate appear to have the same color as the reference sample and/or that facilitates resolving differences in apparent colors. In one example, the synthetic reflectance curve is employed to generate a formula for a colorant that can be applied to an actual substrate to make it appear to match the reference sample.  
         [0082]     At  1140 , a determination is made whether all N, N being an integer, desired substrates have been analyzed. If the determination is yes, then processing can conclude. Otherwise processing continues at  1150 .  
         [0083]     At  1150 , another output color is generated by applying the spectrophotometric data to another simulated substrate. The output color can then be displayed. Thus, at  1160 , colorimetric data associated with the output color can be acquired. For example, a calorimeter can acquire data from a computer monitor displaying the output color. In one example, at  1170 , a compensation value is generated that facilitates, at  1180 , computing a synthetic reflectance curve for a color that facilitates matching colors on materials with different properties. Though a compensation value is computed at  1170 , it is to be appreciated that other values and/or formulae can be applied to facilitate producing the synthetic reflectance curve at  1180 . In one example, at  1190 , a matching formula is computed. The formula can be computed to facilitate having the apparent colors of different materials appear the same. The matching formula may be based on the synthetic reflectance curve of  1180  and/or the compensation value of 1170.  
         [0084]      FIG. 12  illustrates an example screen shot from a program for matching colors on materials with different properties. A computer display  1200  includes a segment  1210  that displays a color generated by applying spectrophotometric data acquired from a reference sample to a first simulated substrate. Similarly,  FIG. 13  illustrates an example screen shot from a program for matching colors on materials with different properties. The computer display  1200  includes a segment  1310  that displays a second color generated by applying spectrophotometric data acquired from the reference sample to a second simulated substrate.  FIG. 14  illustrates an example screen shot from a program for matching colors on materials with different properties. In  FIG. 14 , the computer display  1200  displays segments  1210  and  1310  side by each, and also includes a number of graphical user interface controls. For example, a graphical user interface control  1410 , which includes a setting slider bar  1440 , may be employed to manually and/or programmatically alter the hue in one or more of the displayed segments. Similarly, a graphical user interface control  1420 , which includes a setting slider bar  1430  may be employed to manually and/or programmatically alter the brightness in one or more of the displayed segments. Thus, a graphical user interface can be employed to present choices concerning matters including, but not limited to, substrates to color, color intensity, hue, brightness, saturation, texture and so on associated with colors to be matched on different materials. While controls with slideable setting bars are illustrated it is to be appreciated that various other controls known in the art may also be employed with the graphical user interface.  
         [0085]      FIG. 15  illustrates a computer  1500  that includes a processor  1502 , a memory  1504 , a disk  1506 , input/output ports  1510 , and a network interface  1512  operably connected by a bus  1508 . Executable components of the systems described herein may be located on a computer like computer  1500 . Similarly, computer executable methods described herein may be performed on a computer like computer  1500 . It is to be appreciated that other computers may also be employed with the systems and methods described herein. The processor  1502  can be a variety of various processors including dual microprocessor and other multi-processor architectures. The memory  1504  can include volatile memory and/or non-volatile memory. The non-volatile memory can include, but is not limited to, read only memory (ROM), programmable read only memory (PROM), electrically programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), and the like. Volatile memory can include, for example, random access memory (RAM), synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), and direct RAM bus RAM (DRRAM). The disk  1506  can include, but is not limited to, devices like a magnetic disk drive, a floppy disk drive, a tape drive, a Zip drive, a flash memory card, and/or a memory stick. Furthermore, the disk  1506  can include optical drives like, compact disk ROM (CD-ROM), a CD recordable drive (CD-R drive), a CD rewriteable drive (CD-RW drive) and/or a digital versatile ROM drive (DVD ROM). The memory  1504  can store processes  1514  and/or data  1516 , for example. The disk  1506  and/or memory  1504  can store an operating system that controls and allocates resources of the computer  1500 .  
         [0086]     The bus  1508  can be a single internal bus interconnect architecture and/or other bus architectures. The bus  1508  can be of a variety of types including, but not limited to, a memory bus or memory controller, a peripheral bus or external bus, and/or a local bus. The local bus can be of varieties including, but not limited to, an industrial standard architecture (ISA) bus, a microchannel architecture (MSA) bus, an extended ISA (EISA) bus, a peripheral component interconnect (PCI) bus, a universal serial (USB) bus, and a small computer systems interface (SCSI) bus.  
         [0087]     The computer  1500  interacts with input/output devices  1518  via input/output ports  1510 . Input/output devices  1518  can include, but are not limited to, a scanner, a spectrophotometer, a calorimeter, a keyboard, a microphone, a pointing and selection device, cameras, video cards, displays, and the like. The input/output ports  1510  can include but are not limited to, serial ports, parallel ports, and USB ports.  
         [0088]     The computer  1500  can operate in a network environment and thus is connected to a network  1520  by a network interface  1512 . Through the network  1520 , the computer  1500  may be logically connected to a remote computer  1522 . The network  1520  can include, but is not limited to, local area networks (LAN), wide area networks (WAN), and other networks. The network interface  1512  can connect to local area network technologies including, but not limited to, fiber distributed data interface (FDDI), copper distributed data interface (CDDI), ethernet/IEEE 802.3, token ring/IEEE 802.5, and the like. Similarly, the network interface  1512  can connect to wide area network technologies including, but not limited to, point to point links, circuit switching networks like integrated services digital networks (ISDN), packet switching networks, and digital subscriber lines (DSL). Since the computer  1500  can be connected with other computers, and since the systems and methods described herein may include distributed communicating and cooperating computer components, information may be transmitted between these components.  
         [0089]     Thus, referring now to  FIG. 16 , information can be transmitted between various computer components associated with matching colors on materials with different properties described herein via a data packet  1600 . An exemplary data packet  1600  is shown. The data packet  1600  includes a header field  1610  that includes information like the length and type of packet. A source identifier  1620  follows the header field  1610  and includes, for example, an address of the computer component from which the packet  1600  originated. Following the source identifier  1620 , the packet  1600  includes a destination identifier  1630  that holds, for example, an address of the computer component to which the packet  1600  is ultimately destined. Source and destination identifiers can be, for example, globally unique identifiers (guids), URLS (uniform resource locators), path names, and the like. The data field  1640  in the packet  1600  includes various information intended for the receiving computer component. The data packet  1600  ends with an error detecting and/or correcting field  1650  that facilitates a computer component determining if it has properly received the packet  1600 . While six fields are illustrated in the data packet  1600 , it is to be appreciated that a greater and/or lesser number of fields can be present in data packets.  
         [0090]      FIG. 17  is a schematic illustration of sub-fields  1700  within the data field  1640  ( FIG. 16 ). The sub-fields  1700  discussed are merely exemplary and it is to be appreciated that a greater and/or lesser number of sub-fields could be employed with various types of data germane to matching colors on materials with different properties. The sub-fields  1700  include a field  1710  that holds, for example, spectrophotometric data. The spectrophotometric data may have been acquired, for example, by scanning a reference sample that had been colored to a desired color to acquire an image data and then processing the image data into spectrophotometric data. The spectrophotometric data may take the form of a reflectance curve, for example.  
         [0091]     The sub-fields  1700  may also include a field  1720  that holds calorimetric data. The calorimetric data may have been acquired, for example, by using a calorimeter to analyze a color displayed on a computer monitor or other display device. By way of illustration, a color may have been generated by applying the spectrophotometric data stored in field  1710  to a digital image of a simulated substrate. The color may then have been displayed on a computer monitor and a colorimeter employed to analyze that color and produce the calorimetric data stored in field  1720 . While a single calorimetric field  1720  is illustrated, it is to be appreciated that a greater number of colorimetric data fields  1720  may be included in the sub-fields  1700 .  
         [0092]     As a result of analyzing one or more sets of colorimetric data, a synthetic spectrophotometric data may be generated. Thus, the sub-fields  1700  may include a field  1730  for storing spectrophotometric data. While a single field  1730  is illustrated, it is to be appreciated that there may be two or more such fields. For example, there may be a field  1730  for storing a synthetic spectrophotometric data for each of a corresponding colorimetric data stored in a field  1720 .  
         [0093]     Referring now to  FIG. 18 , an application programming interface (API)  1800  is illustrated providing access to a system  1810  for matching colors on materials with different properties. The API  1800  can be employed, for example, by programmers  1820  and/or processes  1830  to gain access to processing performed by the system  1810 . For example, a programmer  1820  can write a program to access the system  1810  (e.g., to invoke its operation, to monitor its operation, to access its functionality) where writing a program is facilitated by the presence of the API  1800 . Thus, rather than a programmer  1820  having to understand the internals of the system  1810 , the programmer&#39;s task is simplified by merely having to learn the interface to the system  1810 . This facilitates encapsulating the functionality of the color matching system  1810  while exposing that functionality. Similarly, the API  1800  can be employed to provide data values to the system  1810  and/or retrieve data values from the system  1810 . For example, a process  1830  that processes spectrophotometric data can provide that data to the system  1810  via the API  1800  by, for example, using a call provided in the API  1800 . Thus, in one example of the API  1800 , a set of application program interfaces can be stored on a computer-readable medium. The interfaces can be employed by a programmer, computer component, and/or process to gain access to a color matching system  1810 . Interfaces can include, but are not limited to, a first interface  1840  that communicates a spectrophotometric data, a second interface  1850  that communicates a calorimetric data, and a third interface  1860  that communicates a synthetic spectro-photometric data related to the colorimetric data communicated by interface  1850  and the spectrophotometric data communicated by the interface  1840 .  
         [0094]     The systems, methods, and objects described herein may be stored, for example, on a computer readable media. Media can include, but are not limited to, an ASIC, a CD, a DVD, a RAM, a ROM, a PROM, a disk, a carrier wave, a memory stick, and the like. Thus, an example computer readable medium can store computer executable instructions for a method for matching colors on materials with different properties. Similarly, a computer readable medium can store computer executable components of a system for matching colors on materials with different properties.  
         [0095]     What has been described above includes several examples. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the systems, methods, computer readable media and so on employed in matching colors on materials with different properties. However, one of ordinary skill in the art may recognize that further combinations and permutations are possible. Accordingly, this application is intended to embrace alterations, modifications, and variations that fall within the scope of the appended claims. Furthermore, the preceding description is not meant to limit the scope of the invention. Rather, the scope of the invention is to be determined only by the appended claims and their equivalents.  
         [0096]     While the systems, methods and so on herein have been illustrated by describing examples, and while the examples have been described in considerable detail, it is not the intention of the applicants to restrict or in any way limit the scope of the appended claims to such detail. Additional advantages and modifications will be readily apparent to those skilled in the art. Therefore, the invention, in its broader aspects, is not limited to the specific details, the representative apparatus, and illustrative examples shown and described. Accordingly, departures may be made from such details without departing from the spirit or scope of the applicant&#39;s general inventive concept.  
         [0097]     Furthermore, to the extent that the term “includes” is employed in the detailed description or the claims, it is intended to be inclusive in a manner similar to the term “comprising” as that term is interpreted when employed as a transitional word in a claim. Further still, to the extent that the term “or” is employed in the claims (e.g., A or B) it is intended to mean “A or B or both”. When the author intends to indicate “only A or B but not both”, then the author will employ the term “A or B but not both”. Thus, use of the term “or” herein is the inclusive, and not the exclusive, use. See B RYAN  A. G ARNER,  A D ICTIONARY OF  M ODERN  L EGAL  U SAGE  624 (2d Ed. 1995).