Method of color reproduction

Abstract: Relationships of correspondence between data on a multiplicity of kinds of color and data on tristimulus values are determined in advance, and correspondence between interpolating points between inputted color data and data on the tristimulus values corresponding to the interpolation points is determined by interpolation on the basis of the determined relationships of correspondence. When a desired color is to be reproduced and outputted, tristimulus values which are identical to or closest to the tristimulus values, i.e., output values corresponding to that desired color, are selected, and color data corresponding to the selected tristimulus values is determined to reproduce the color.

Description: BACKGROUND OF THE INVENTION Field of the Invention: The present invention relates to a method of color reproduction. More particularly, the present invention concerns a method of color reproduction by determining in advance correlations between input values and an outputted color for reproducing a specific color in an apparatus for color printing, color display, or the like. Description of the Related Art: As is known, the color of an object surface, a color original image, or the like can be specified in a standardized manner by determining the position where chromaticity coordinates, which are expressed by using tristimulus values X, Y, and Z of the color in the CIE (International Commission on Illumination) standard XYZ colorimetric system, are located in a chromaticity diagram. Namely, if the spectral distribution I(λ) of light reflected from or transmitted through the object or the like can be measured, the tristimulus values X, Y, and Z can be determined from the following Formula (1): where k = 100· ∫ {I(λ) y (λ)dλ}, x (λ), y (λ), z (λ): CIE color matching functions, λ: wavelength This value Y shows the brightness of the light having I(λ), and the color can be specified by plotting points on a chromaticity diagram of an orthogonal coordinate system, in which values of x and y obtained from the following Formulae (2) are set as chromaticity coordinates, and x is plotted as the abscissa and y as the ordinate in a conventionally known manner (all the colors are included within a slanted bell shape): x = X/(X + Y + Z) y = Y/(X + Y + Z) Recently, there has been a need for reproduction of colors which can be specified in a standardized manner as described above. For instance, in the field of design, there has been a demand for color-reproducing techniques which make it possible to faithfully reproduce necessary colors for the purpose of evaluation of color design. As examples of apparatus which require color reproduction of color original images, there are display units for displaying color-reproduced images that are color-reproduced on the basis of color data on color original images, as well as color copying apparatus (color hard-copying apparatus) for copying color-reproduced images that are color-reproduced on the basis of color data on color original images. As a method of color reproduction during color hard copying in the color hard-copy apparatus, a method of color reproduction is known for faithfully reproducing a necessary color by using image processing (Kodera: "Image Processing for Color Reproduction" in Supplementary Volume "Imaging Part 1" of the Shashin Kogyo (Photo Industry) published by Shashin Kogyo and compiled by the Electrophotography Society). However, since the color can be specified by the mixing of pigments of YMC colors, RGB signals for the display, or the like, the RGB colorimetric system based on the three primary colors (reference stimuli) is in most cases used as the colorimetric system for specifying actual colors. Hence, conversion of color data in the RGB colorimetric system to and from color data in the XYZ colorimetric system is required. By taking the aforementioned color copying apparatus as an example, color specification in this color copying apparatus is generally effected by mixing predetermined color materials (R material, G material, and B material) to form a reproduced image (a copy of the original) and output the same. Because respective colors of this reproduced image can be specified by data in the XYZ colorimetric system, i.e., color data using the tristimulus values X, Y, and Z, on the basis of reproducing conditions such as a mixing ratio of the color materials and values of measurement by a spectrophotometer or the like, each of these colors may be considered as a function f for computing the tristimulus values X, Y, and Z using data (r, g, and b) of the color materials as parameters, as shown in the following Formula (3): f: (r, g, b) → (X, Y, X) Since the density based on these color materials can generally be changed in 256 gradations for r, g, and b, respectively, it is possible to reproduce a color original image in 256 3 (= 16,777,216) combinations. Here, since the color data when the color original image is read can be converted to color data in the XYZ colorimetric system, as described above, it is possible to compute the tristimulus values X, Y, and Z of the colors to be reproduced as a reproduced image. Accordingly, if the data (r, g, and b) of the color material, in which the tristimulus values X, Y, and Z, i.e., output values of the function f, are equal to the tristimulus values X, Y, and Z of the color data on the color original image, are determined, color reproduction is possible with high accuracy. For this reason, it is possible to form a reproduced image with a high level of color reproducibility by determining an inverse function f -1 of Formula (3) in advance and then by using the data (r, g, and b) on the color material determined by this inverse function f -1 . However, in the aforementioned color copying apparatus, since color formation is generally based on the subtractive mixture of color stimuli, Formula (3) above becomes nonlinear. For this reason, it is difficult to determine the inverse function f -1 . To overcome this problem, it is conceivable to determine and store in advance all of the tristimulus values X, Y, and Z and the data on the color materials with respect to the 256 3 combinations mentioned above and to extract data on the color materials which are in a relationship of the inverse function f -1 during reproduction processing. However, the amount of computation for processing in advance is enormously large, and a storage area for storing the relationships determined also becomes enormously large, so that this scheme is not practically feasible. In the prior art there are further known colour conversion methods in which interpolation is used. Such methods are e.g. disclosed in US-A-4 477 833 and WO-A-91/20047. SUMMARY OF THE INVENTION In view of the above-described circumstances, it is a object of the present invention to provide a method of color reproduction which makes it possible to reproduce a necessary color only by simple processing by using a small amount of known data without using a huge amount of data or effecting massive data processing. According to the present invention, the above objects are achieved by a method of color reproduction comprising the steps of (a) determining a plurality of predetermined relationships of correspondence between first values expressed in a predetermined colorimetric system for outputting a predetermined number of colors and second values expressed in a colorimetric system, which is different from the predetermined colorimetric system, for specifying a color to be reproduced, and estimating a plurality of interpolating points as estimated second values other than predetermined second values; (b) calculating by performing interpolation on the basis of said plurality of predetermined relationships the first values corresponding to the estimated second values; (c) when an arbitrary color is to be reproduced, selecting the second values which are identical to or closest to the second values of the arbitrary color from the estimated second values, and selecting the first values corresponding to the identical or closest second values; and (d) reproducing the color on the basis of the selected first values. In accordance with the aspect of the invention, a plurality of predetermined relationships of correspondence are determined in advance between first values expressed in a predetermined colorimetric system for outputting a predetermined number of colors and second values expressed in a colorimetric system different from the predetermined colorimetric system for specifying a color to be reproduced. These relationships of correspondence may be nonlinear relationships. For example, the predetermined colorimetric system includes an RGB colorimetric system, and the difference colorimetric system includes an XYZ colorimetric system. The first values include data on color materials, and the second values include tristimulus values. A plurality of the second values other than predetermined ones of the second values are estimated by interpolation or the like on the basis of the plurality of relationships of correspondence, and the first values corresponding to the estimated second values are estimated. Accordingly, it is possible to determine a plurality of relationships of correspondence including a desired relationship of correspondence from the predetermined plurality of relationships of correspondence. When an arbitrary color is to be reproduced, the second values which are identical to or closest to the second values of the arbitrary color are estimated from the estimated second values, and the first values corresponding to the identical or closest second values are selected. If the color is reproduced on the basis of the selected first values, it is possible to reproduce and output a color close to the desired color or that color itself. As described above, in accordance with the aspect of the invention, it is possible to determine a multiplicity of relationships from a small number of relationships determined in advance by a simple algorithm. As a result, there is an advantage in that input values for obtaining required values can be obtained easily. The above and other objects, features and advantages of the present invention will become more apparent from the following detailed description of the invention when read in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a schematic diagram including a personal computer in accordance with a first embodiment of the present invention; Fig. 2 is a flowchart illustrating the flow of color reproduction processing in accordance with the first embodiment; Figs. 3A to 3C are image diagrams illustrating the flow of the color reproduction processing shown in Fig. 2; Fig. 4 is a is a flowchart illustrating the details of an interpolation processing routine (Step 200 in Fig. 2) in accordance with the first embodiment; Figs. 5A to 5C are characteristic diagrams illustrating relationships between color data and tristimulus values, in which Fig. 5A shows the relationship between a value a 1 (Ye) and a value x 1 (X), Fig. 5B shows the relationship between the value a 1 and a value x 2 , and Fig. 5C shows the relationship between the value a 1 and a value x 3 ; Figs. 6A to 6E are characteristic diagrams illustrating relationships between the color data and the tristimulus values when the value a 3 (Cy) is varied in the characteristic diagram shown in Fig. 5A, in which Fig. 6A shows the case of a 3 = 0; Fig. 6B, the case of a 3 = 63; Fig. 6C, the case of a 3 = 127; Fig. 6D, the case of a 3 = 191; and Fig. 6E, the case of a 3 = 255; Fig. 7 is an image diagram illustrating a scanning range required by the values a 2 , a 3 ; Fig. 8 is a flowchart illustrating the details of a curve-deriving processing routine (Step 204 in Fig. 4) in accordance with the first embodiment; Fig. 9 is an image diagram illustrating a process for determining x 1 coordinates on the basis of the value a 3 ; Fig. 10 is an image diagram illustrating a process for determining x 1 coordinates on the basis of the value a 2 ; Fig. 11 is a flowchart illustrating the details of a computing routine (Step 206 in Fig. 4) for determining correspondence between the color data and the tristimulus values in the accordance with the first embodiment; Fig. 12 is an image diagram illustrating a process for determining intersection coordinates between each curve and a straight line; Fig. 13 is an image diagram illustrating a process for determining a plurality of intersection coordinates between a curve and a straight line; Figs. 14A to 14C are image diagrams illustrating a process for determining the values x 2 , x 3 corresponding to points of intersection, in which Fig. 14A shows a process for determining the value a 1 ; Fig. 14B, a process for determining the value x 2 ; and Fig. 14c, a process for determining the value x 3 ; Figs. 15A to 15C are image diagrams in which Fig. 15 shows a curve having a plurality of points of intersection with a straight line; Fig. 15B shows a process for determining the value x 2 from a plurality of points of intersection; and Fig. 15C shows a process for determining the value x 3 ; Fig. 16 is a flowchart illustrating the flow of a computing routine (Step 208 in Fig. 4) for determining a boundary in accordance with the first embodiment; Fig. 17 is an image diagram illustrating a process for plotting points corresponding to points of intersection on an x 2 -x 3 coordinate plane in accordance with the first embodiment; Fig. 18 is a diagram illustrating a boundary formed in accordance with the first embodiment; Fig. 19 is a flowchart illustrating the flow (Step 300 in Fig. 2) of color data corresponding to arbitrary tristimulus values in accordance with the first embodiment; Fig. 20 is an image diagram for explaining a determination as to whether or not the point is within a boundary of arbitrary tristimulus values in accordance with the first embodiment; Fig. 21 is a flowchart illustrating the details of an interpolation processing routine (Step 200 in Fig. 2) in accordance with a second embodiment; Fig. 22 is a flowchart illustrating the details of an curve-deriving processing routine (Step 402 in Fig. 21) in accordance with a second embodiment; Fig. 23 is a flowchart illustrating the details of a computing routine (Step 404 in Fig. 21) in which correspondence between a first set and a second set is determined in accordance with the second embodiment; Figs. 24A to 24C are image diagrams illustrating a process for determining the values x 2 to x N corresponding to the points of intersection in accordance with the second embodiment, in which Fig. 24A shows a process for determining the value a 1 ; Fig. 24B, a process for determining the value x 2 ; and Fig. 24c, a process for determining the value x N ; Fig. 25 is a diagram illustrating a boundary in another polygonal region in accordance with the first embodiment; DESCRIPTION OF THE PREFERRED EMBODIMENTS Referring now to the accompanying drawings, a description will be given of the preferred embodiments of the present invention. As shown in Fig. 1, a color reproducing apparatus includes a personal computer 16 and a color copying apparatus 18. This personal computer 16 is comprised of a keyboard 10 for entering data and the like, a main unit 12 of the computer for computing and outputting data for outputting a desired color from the color copying apparatus 18 in accordance with a program stored in advance, and a CRT 14 for displaying such as the results of computation by the main unit 12 of the computer. As this color copying apparatus 18, color hard-copying apparatus are known which are based on a thermal transfer process, an ink-jet process, an electrophotographic process, and a silver-halide photographic process for outputting color copy images using color data in the RGB colorimetric system as input values. In a first embodiment, when a predetermined color is reproduced by the color copying apparatus 18, color data in the RGB colorimetric system to be converted to arbitrary color data in the XYZ colorimetric system required for color reproduction are determined on the basis of combinations of a specific number (5 3 sets) of color data in the XYZ colorimetric system and color data in the RGB colorimetric system (trichromatic system), which are set in advance as physical amounts, so as to effect color reproduction. It should be noted that, as for the color data that are inputted to the color copying apparatus 18, the color filter densities (yellow, magenta, and cyan) based on subtractive mixture of inks or the like are used as color data (Ye, Ma, and Cy). In addition, it is assumed that the inks or the like have ideal color filter density (absorption) characteristics. When the invention is applied to general inks or the like which undergo secondary absorption, it suffices to reduce in advance unnecessary spectral absorption due to the sum of components of the inks or the like when the inks or the like are mixed (so-called color-correction masking). Fig. 2 shows a routing for processing a program for reproducing a desired color in accordance with this embodiment. In addition, the combination of the group of color data in the XYZ colorimetric system and the group of color data in the RGB colorimetric system for expressing a predetermined color by the color copying apparatus 18 is considered to be in a mapping relation between a set A representing the group of color data in the RGB colorimetric system and a set XX representing the group of color data in the XYZ colorimetric system. Accordingly, respective relations in this processing routine are shown as images in Figs. 3A to 3C. In Step 100 in Fig. 2, an output value Oi (i: 1 to 125) is determined with respect to each of a predetermined number of (in this embodiment, it is assumed that each of Ye, Ma, and Cy is specified by one of five values; hence, all the combinations at that time, i.e., 5 3 = 125) samples Si (i: 1 to 125) (Fig. 3A). Namely, relations are determined between 125 kinds of color data (Ye, Ma, and Cy) which are input values Si for the color copying apparatus 18 and data on the tristimulus values X, Y, and Z of the color which are output results (output values Oi) with respect to the color data. In Step 200, correspondence between an interpolating point SIi (i: 1, 2, ...) and an estimated output value OIi is calculated by performing interpolation on the basis of the relationship of correspondence between the sample point Si and the output value Oi (Fig. 3B). In Step 300, an output value Oo or an estimated output value OIo, which is identical or closest to an output value to be obtained and corresponding to a desired color (i.e., color data on the color to be reproduced, and indicated by a mark * in Fig. 3C), is selected, and an input value (So or SIo) corresponding to the selected value (Oo or OIo) is determined (Fig. 3C). More particularly, in Step 100, 125 kinds of color data (Ye, Ma, and Cy) are inputted to the color copying apparatus 18, and the color copying apparatus 18 outputs a color medium which has formed a color corresponding to the inputted color data. This outputted color medium is photometrically measured with a spectrometer such as a spectrophotometer, thereby determining tristimulus values (X, Y, and Z). Consequently, the tristimulus values (X, Y, and Z) corresponding to the 125 kinds of color data (Ye, Ma, and Cy) are determined. It should be noted that, to simplify the description which follows, as for the five kinds of color data (Ye, Ma, and Cy) that are inputted to the color copying apparatus 18, each of the values of Ye, Ma, and Cy is any one of five equispaced values, 0, 63, 127, 191, and 255. Referring now to Fig. 4, a description will be given of the interpolation processing routine in Step 200. It should be noted that, in the description that follows, values of the color data (Ye, Ma, and Cy) and the tristimulus values (X, Y, and Z) serving as input values are set as follows: Color data (Ye, Ma, and Cy): values (a 1 , a 2 , a 3 ) Tristimulus values (X, Y, and Z): values (x 1 , x 2 , x 3 ) and a description will be given by using these values ai and xi (i = 1, 2, 3). It should be noted that, in the color copying apparatus 18, an image of 256 gradations is outputted, and a desired color is designated by using tristimulus values in the XYZ colorimetric system, so that the value ai and the value xi can be expressed as follows: 0 ≤ ai ≤ 255 0 ≤ xi ≤ 100 In this embodiment, since each of various values ai (i: 1, 2, 3) at the aforementioned sample points to be determined in advance is any one of the five values as described above, this value will be denoted by j and written as a value aij (i: 1, 2, 3, j: 1, 2, 3, 4, 5). It should be noted that these values at the sample points need not be equispaced, and should preferably be used at dense and sparse intervals so as to cover a range which involves a sudden change. In Step 202, the range of values which are actually used as the values (a 1 , a 2 , a 3 ) is determined. First, a change of the value a i with respect to the value xi with the values a 2 and a 3 set as parameters is examined. In Figs. 5A to 5C, relationships between the value a 1 and the value xi when the value a 3 is 0 and the values a 2 are 0, 63, 127, 191, and 255 (a 2 j) are shown on an a 1 -xi coordinate plane in which the value a 1 is taken as the ordinate and the value xi as the abscissa. Fig. 5A shows relationships between the value a 1 and the value x 1 on an a 1 -x 1 coordinate plane. Fig. 5B shows relationships between the value a 1 and the value x 2 on an a 1 -x 2 coordinate plane. Fig. 5C shows relationships between the value a 1 and the value x 3 on an a 1 -x 3 coordinate plane. Curves in the drawings are determined as follows: The five values (x 1 , x 2 , x 3 ) when the values a 1 are 0(a 11 ), 63(a 12 ), 127(a 13 ), 191(a 14 ), and 255(a 15 ) when a 3 = 0 and a 2 = 0 are determined in Step 100. Accordingly, it is possible to plot five points corresponding to the sample points on the respective a 1 -xi coordinate planes in Figs. 5A to 5C through correspondence between the values of color data on the sample points and the values (x 1 , x 2 , x 3 ). It should be noted that points plotted on the a 1 -x 1 coordinate plane are represented as points Pa 1 ,a 2 ,a 3 ; points plotted on the a 1 -x 2 coordinate plane are represented as points Qa 1 ,a 2 ,a 3 ; and points plotted on the a 1 -x 3 coordinate plane are represented as points Ra 1 ,a 2 ,a 3 . Curves as obtained by performing spline interpolation with respect to the plurality of points plotted on each of these a 1 -xi coordinate planes. Hereafter, these curves will be written as curves [a 2 , a 3 ]i (i: 1, 2, 3). For example, a curve on the a 1 -x 1 coordinate plane when the value a 3 is 0 and the value a 2 is 0 becomes a curve [0, 0] 1 , as shown in Fig. 5A. In addition, the examination of the change of the curve [a 2 , a 3 ]i by changing the value ai (i= 2, 3) will be referred to as scanning by the value ai. Figs. 6A to 6E show relationships between the value a 1 and the value x 1 when the value a 3 is one of 0, 63, 127, 191, and 255, respectively. Fig. 6A shows relationships between the value a 1 and the value x 1 when the value a 3 is 0 in the same was as in Fig. 5A. Fig. 6B shows relationships when the value a 3 is 63. Fig. 6C shows relationships when the value a 3 is 127. Fig. 6D shows relationships when the value a 3 is 191. Fig. 6E shows relationships when the value a 3 is 255. Here, in a case where each of the values a2 and a3 is changed in stages in the order of 0, 1, 2 ..., 255 with respect to the curve [a 2 , a 3 ]i to calculate output values for interpolating points by the interpolation from sample points, as for the curve [a 2 , a 3 ]i to be determined, it suffices to determine only the value ai corresponding to a value xi* which falls within the range of the values xi which are predetermined values of the desired color. Namely, only a curve [a 2 , a 3 ] 1 having a point of intersection with a straight line x 1 = x 1 * on the a 1 -x 1 coordinate plane is required. For instance, if the range 10 ≤ x 1 * ≤ 100 is considered, as can be appreciated from Figs. 6A to 6E, it is estimated that scanning is not required for the range 191 ≤ a 3 ≤ 255. Accordingly, the range of scanning is determined as described below by using the curves obtained by the above-described spline interpolation. It should be noted that since the curve [a 2 , a 3 ]i is required to have at least the aforementioned point of intersection with respect to the value x 1 , only the curve [a 2 , a 3 ] 1 is processed in this processing. If the curve [a 2 , a 3 ] 1 and the curve [a 2 - 64, a 3 ] 1 with the value a 3 varied consecutively in the order of 0, 63, 127, 191, and 255 do not have a point of intersection with the straight line x 1 = x 1 * on the coordinate plane, the scanning by the value a 2 which assumes a value from (a 2 - 64) to a 2 is not necessary. Incidentally, if the value a 2 is 63, processing is performed with respect to the curve [63, a 3 ] 1 and the curve [0, a 3 ] 1 . Similarly, if the curve [a 2 , a 3 ] 1 and the curve [a 2 , a 3 - 64] 1 with the value a 2 varied consecutively in the order of 0, 63, 127, 191, and 255 do not have a point of intersection with the straight line x 1 = x 1 * on the coordinate plane, the scanning by the value a 3 which assumes a value from (a 3 - 64) to a 3 is not necessary. Incidentally, if the value a 3 is 63, processing is performed with respect to the curve [a 2 , 63] 1 and the curve [a 2 , 0] 1 . As a result of this,processing, if the value a 3 exceeds 191, as shown by the hatched portion in Fig. 7, it can be appreciated that scanning is not required irrespective of the value a 2 . In an ensuing Step 204, a curve [a 2 ', a 3 ']i including arbitrary values (a 1 ', a 2 ', a 3 ') is determined by the computing routine shown in Fig. 8. This curve [a 2 ', a 3 ']i is determined by performing spline interpolation from five points plotted on each a 1 -xi coordinate plane when the values a 1 are 0, 63, 127, 191, and 255. In other words, the curve [a 2 ', a 3 ']i is determined from the respective five points from points Pa 1 ,a 2 ',a 3 ' on the a 1 -x 1 coordinate plane, points Qa 1 ,a 2 ',a 3 ' on the a 1 -x 2 coordinate plane, and points Ra 1 ,a 2 ',a 3 ' on the a 1 -x 3 coordinate plane, respectively. Hereafter, a description will be given by using the points Pa 1 ,a 2 ',a 3 ' plotted on the a 1 -x 1 coordinate plane as an example. In Step 210 in Fig. 8, x 1 -coordinates of the point Pa 1 ,a 2 ',a 3 ' (a 1 , a 2 : 0, 63, 127, 191, 255) are determined by scanning by the value a 3 as shown below. First, a description will be given of an example in which the value a 1 is 0, and the value a 2 is 255. The x 1 -coordinates of the point P 0,255, a 3 ' are found by performing spline interpolation from the x 1 -coordinates of five points including a point P 0,255,0 , a point P 0,255,63 , a point P 0,255,127 , a point P 0,255,191 , and a point P 0,255,25 . That is, since the x 1 -coordinates of these five points are already known as described above, by using these coordinates, points are plotted on the a 3 -x 1 coordinate plane where the value a 3 and the value x 1 perpendicularly intersect each other, and spline interpolation is performed with respect to these plotted points, thereby obtaining a continuous line 50, as shown in Fig. 9. Then, the coordinate of intersection between the straight line a 3 = a 3 ' and this continuous line 50 is determined, and this intersection coordinate is set as a solution (a value x 1 ' of the x 1 -coordinate of the point P 0,255, a 3 '). By setting this value a 2 consecutively to 0, 63, 127, 191, and 255 and performing processing similar to the one described above, it is possible to determine a coordinate value of the x 1 -coordinate of each point Pa 1 ,a 2 ',a 3 ' (a 1 : 0, 63, 127, 191, 255). In an ensuing Step 212, scanning is effected by the value a 2 by using the coordinate values of the x 1 -coordinates determined in Step 210, so as to determine the x 1 -coordinates of the points Pa 1 ,a 2 ',a 3 ' (a 1 : 0, 63, 127, 191, 255). First, a description will be given by citing an example in which the value a 1 is 0. The x 1 -coordinates of the point P 0 ,a 2 ',a 3 ' are found by performing spline interpolation from the x 1 -coordinates of five points including a point P 0,0, a 3 ', a point P 0,63, a 3 ', point P 0,127, a 3 ', a point P 0,191, a 3 ', and a point P 0,255, a 3 '. That is, since the x 1 -coordinates of these five points have already been found in Step 204, by using these coordinates, points are plotted on the a 2 -x 1 coordinate plane where the value a 2 and the value x 1 perpendicularly intersect each other, and spline interpolation is performed with respect to these plotted points, thereby obtaining a continuous line 52, as shown in Fig. 10. Then, the coordinate of intersection between the straight line a 2 = a 2 ' and this continuous line 52 is determined, and this intersection coordinate is set as a solution (a value x 1 '' of the x 1 -coordinate of the point P 0 ,a 2 ',a 3 '). By setting this value a 1 consecutively to 0, 63, 127, 191, and 255 and performing processing similar to the one described above, it is possible to determine a coordinate value of each x 1 -coordinate of the point Pa 1 ,a 2 ',a 3 '. In an ensuing Step 214, the curve [a 2 ', a 3 '] 1 is determined by using the coordinate values of the points determined above. Namely, since the x 1 -coordinates of the points Pa 1 ,a 2 ',a 3 ' are determined in Steps 210 and 212, points can be plotted on the respective a 1 -x 1 coordinate plane; hence, by performing spline interpolation with respect to these plotted points, it is possible to obtain an arbitrary curve [a 2 ', a 3 '] 1 . It should be noted that, with respect to the curve [a 2 ', a 3 '] 2 on the a 1 -x 2 coordinate plane and the curve [a 2 ', a 3 '] 3 on the a 1 -x 3 coordinate plane as well, it is possible to obtain an arbitrary curve by changing the coordinate plane used above. Thus, it is possible to determine curves [a 2 ', a 3 ']i (i = 1, 2, 3) with respect to arbitrary values (a 2 ', a 3 '). Consequently, it is possible to determine values (x 1 , x 2 , x 3 ) corresponding to arbitrary values (a 1 ', a 2 ', a 3 '). In an ensuing Step 206, correspondence is determined between the values (a 1 , a 2 , a 3 ) of the color data (Ye, Ma, Cy) and the values (x 1 , x 2 , x 3 ) of the tristimulus values (X, Y, Z) by the computing routine shown in Fig. 11. It should be noted that, to simplify the description, a description will be given hereafter by citing an example in which the value x 1 is a desired predetermined value x 1 *. In Step 220 of Fig. 11, by using the curves [a 2 ', a 3 '] 1 , scanning is effected by the values a 2 , a 3 (by setting the values of a 2 , a 3 to 0, 1, 2, ..., 255) so as to determine a point of intersection between each curve [a 2 , a 3 ] 1 and the straight line x 1 = x 1 *. First, the value a 3 is set to a predetermined value a S3 , and the value a 2 is varied consecutively in the order of 0, 1, ..., 255, so as to determine intersection coordinates (Fig. 12). Namely, a point of intersection between the curve [a 2 , a s3 ] 1 with the value a 2 varied and the straight line x 1 = x 1 * is computed, a coordinate value Am (m: 1, 2, ..., M; M is a maximum number of intersection), i.e., an a 1 -coordinate value, is determined in the order of these intersection coordinates. In addition, the value a 2 of the curve [a 2 , a s3 ] 1 corresponding to this coordinate value Am is set as Bm (m: 1, 2, ..., M; Bm: 1, 2, ..., 255). Here, there are cases where a plurality of points of intersection are present in one curve, as shown in Fig. 13. In this case, it is assumed that one curve has a plurality of points of intersection, and coordinate values Amn (n: 1, 2, ..., K; K is a maximum number of intersection points, 3 in Fig. 13) of the points of intersection are stored in sequence. In an ensuing Step 222, values x 2 , x 3 corresponding to the points of intersection found in Step 220 are determined. First, in order to determine the value x 2 , the value x 2 is determined by using the curve [a 2 , a s3 ] 2 corresponding to the curve [a 2 , a s3 ] 1 having a point of intersection. Namely, as shown in Fig. 14A, in a case where the point of intersection on the curve [Bm, a s3 ] 1 in which the value a 2 is Bm is the coordinate value Am, a value x 2 at which the value a 1 is the coordinate value Am is determined in the curve [Bm, a s3 ] 2 (corresponding to the aforementioned curve) on the a 1 -x 2 coordinate plane. Similarly, the value x 3 can be determined from the curve [a 2 , a s3 ] 3 on the a 1 -x 3 coordinate plane, as shown in Fig. 14C. Here, there are cases where a plurality of points of intersection are present in one curve, as described above (Fig. 15A). In this case as well, in order to determine the value x 2 , a value x 2k (k: 1, 2, ..., K; K is a maximum number of intersection points) at which the value a 1 is the coordinate value Amn is determined in the curve [Bm, a s3 ] 2 on the a 1 -x 2 coordinate plane, as shown in Fig. 15B. Additionally, a value x 3k is determined from the curve [a 2 , a s3 ] 3 on the a 1 -x 3 coordinate plane. In the above-described manner, correspondence can be determined between values (x 1 *, x 2 , x 3 ) and values (a 1 , a 2 , a s3 ) in a case where the value a 3 is set to a predetermined value a S3 . Accordingly, by varying the value a3 set in Step 220 consecutively to 0, 1, 2, ..., 255 and by executing the processing, it is possible to obtain all correspondences between the values (a 1 , a 2 , a 3 ) of the color data (Ye, Ma, Cy) and the values (x 1 *, x 2 , x 3 ) of the tristimulus values (X, Y, Z). Although, in the above, a description has been given by citing an example in which the value x 1 is a predetermined value x 1 *, if the above-described processing is executed by varying this value x 1 in the range (0 ≤ x 1 ≤ 100) that the value x 1 can assume, it is possible to obtain all correspondences between the values (a 1 , a 2 , a 3 ) of the color data (Ye, Ma, Cy) and the values (x 1 , x 2 , x 3 ) of the tristimulus values (X, Y, Z). In an ensuing Step 208, a boundary serving as a determination region including arbitrary values is determined from the respective values x 2 , x 3 of the points of intersection determined by the computing routine of Fig. 16. In this case, an x 1 = x 1 * plane in an x 1 -x 2 -x 3 space, which is a coordinate axis where the respective values (x 1 , x 2 , x 3 ) perpendicularly intersect each other, is assumed. In Step 230 in Fig. 16, the aforementioned values x 2 , x 3 of the points of intersection, which are determined in the case where the value a 3 is a predetermined value when x 1 = x 1 *, are plotted on the x 2 -x 3 coordinate plane. In an ensuing Step 232, the respective values x 2 , x 3 of the points of intersection, which are determined in the case where the value a 3 is varied consecutively in the order of 0, 1, 2, ..., 255, are plotted on the x 2 -x 3 coordinate plane (see Fig. 17). The points in the drawing are represented by S Am , a 3 (m: 1, 2, ..., M). In an ensuing Step 234, a boundary 70 of a convex polygonal region including a plurality of points, which serves as a contour of the group of points plotted on the x 2 -x 3 coordinate plane when x 1 = x 1 *, is determined. In a simple case where curves which correspond to a continuation of points when the value a 3 (= 1, 2, ...) is a predetermined value do not intersect each other on the x 2 -x 3 coordinate plane, it suffices to determine the boundary 70 of the convex polygonal region by simply connecting together endpoints which constitute the contour of the group of points plotted on the x 2 -x 3 coordinate plane. In other words, as shown in Fig. 18, all the points when the value a 3 is a maximum value and a minimum value are included in the internal region of the boundary 70. Thus, the boundary 70 constitutes contour lines of the region which include all the points with respect to each value a 3 when the value a 3 is a maximum value and a minimum value. Combinations of the values (a 1 , a 2 , a 3 ) corresponding to all the points included in a region IN within this boundary 70 include all sets concerning the values a 2 , a 3 , and the value a1 becomes a real number which is determined univalently by the values x 1 and the values a 2 , a 3 . For this reason, the region IN of this boundary 70 covers all the combinations that can be assumed by the values (a 1 , a 2 , a 3 ). Therefore, if the value x 1 is varied in the range (0 ≤ x 1 ≤ 100) in which the value x 1 is capable of assuming the value x 1 *, and the aforementioned processing is executed, it is possible to determine a boundary of the region which covers all the combinations that can be assumed by the values (a 1 , a 2 , a 3 ). For this region, the boundary forms a closed region in the x 1 -x 2 -x 3 space. In addition, in a case where the convex polygonal region in Step 234 above is complicated and the curves with respect to the value a 3 (1, 2, ...) intersect each other, it is estimated that the region including points S Am , a 3 (m = 1, 2, ..., M; and a 3 = 1, 2, ...) becomes a complicated convex polygon, as shown in Fig. 25. In this case, it is possible to determine the boundary 70 by determining an internal region E of the convex polygon as shown below. First, an angle of π/2 to - π/2 is divided equally into N parts by N (a natural number) which is sufficiently large, and an angle i (i: 1, 2, ..., N) which is incremented by each predetermined angle at the time of this equal division can be expressed by the following Formula (4): i = -π/2 + i·π/N A straight line having a coordinate value σ and an inclination  when x 2 = 0 on the x 2 -x 3 coordinate plane can be expressed by Formula (5) below. The x 3 coordinate σ of a point of intersection between this straight line and the coordinate axis (x 2 = 0) on the x 2 -x 3 coordinate plane is defined by the following Formula (6) as a function with respect to each of the aforementioned angles i by using x 2 , x 3 as parameters. x 3 = x 2 ·tan + σ σ(x 2 , x 3 , i) = -x 2 ·tani + x 3 where i = 1, 2, ..., N - 1 When i = N, σ(x 2 , x 3  N ) = x 2 With respect to each of the angles i, a maximum value σ M (i) and a minimum value σ m (i) based on the coordinate values of the point S Am , a 3 concerning the angle i are determined by comparing the results of computation when the coordinate values (x 2 , x 3 ) of the aforementioned point S Am , a 3 are substituted by using Formula (6) above (refer to Formulae (7)). σ M (i) = max{σ(x 2 , x 3 , i)} σ m (i) = min{σ(x 2 , x 3 , i)} Accordingly, all the aforementioned points SAm, a3 are included in the region sandwiched by straight lines defined by each angle  i as well as the maximum value σ M (i) and the minimum value σ m ( i ) corresponding to each angle i. Points E i (x 2 , x 3 ) which are included in the region sandwiched by the straight lines defined by each angle  i as well as the maximum value σ M and the minimum value σ m corresponding to each angle  i can be expressed by the following Formula (8): Where, i = 1, 2, ..., N - 1 α = x 2 tani σ m = σ m (i) σ M = σ M (i) E N (x 2 , x 3 ) = {(x 2 , x 3 ) | σ m ( N ) ≤ x 3 ≤ σ M ( N )} Of the points E i (x 2 , x 3 ) which are included in the region defined by each of these angles i, points E(x 2 , x 3 ) which are included for all the angles 1 are all the points that are included in the convex polygonal region, so that the convex polygonal region can be defined by the following Formula (9): where E i (i = 1, 2, ..., N) is E i (x 2 , x 3 ) of Formula (8) above. Therefore, it is possible to determine the boundary 70 in the convex polygonal region by the straight lines that are defined by the aforementioned maximum value σ M and the minimum value σ m at each angle i when the convex polygonal region is formed in such a manner as to include these points E(x 2 , x 3 ). Step 300 is a processing step for determining values (a 1 *, a 2 *, a 3 *) of color data corresponding to arbitrary tristimulus values (x 1 *, x 2 *, x 3 *) by setting the boundary found in the above as a determination region. It should be noted that, in this step, the x 1 = x 1 * plane in the x 1 -x 2 -x 3 space is considered. First, the operation proceeds to Step 302 in Fig. 19 to determine whether or not a point T plotted on the x 2 -x 3 coordinate plane by the values (x 2 *, x 3 *) is included in the aforementioned boundary 70. This determination is made as follows: A point is plotted at the position of the values (x 2 *, x 3 *) on the x 2 -x 3 coordinate plane, a semi-infinite straight line is formed in a predetermined direction by setting the point T at the position of (x 2 *, x 3 *) as a starting point, and a point of intersection between this semi-infinite straight line and the boundary is determined. If there are the number of these points of intersection is an odd number, the points are present within the boundary 70, whereas if it is an even number, the points are present outside the boundary 70. For instance, as shown in Fig. 20, the number of points of intersection between a point 80 at the position of (x 2 *, x 3 *) on the one hand, and a semi-infinite straight line 84 on the other, is an odd number, so that a determination is made that the point 80 is present within the boundary 70. Meanwhile, the number of points of intersection between a point 82 and a semi-infinite straight line 86 is an even number, so that a determination is made that the point 82 is present outside the boundary 70. In an ensuing Step 304, a determination is made as to whether or not the point T is included in the boundary 70. If it is determined that the point is present within the boundary 70, in Step 306, a Mahalanobis distance Di from the point T is determined with respect to all the points included in the boundary 70 by using the following Formula (10): Di = √{(x 2 * - x 2i ) 2 + (x 3 * - x 3i ) 2 } where i = 1, 2, .... In an ensuing Step 308, a minimum value of the Mahalanobis distance Di thus determined is selected, and the value (a 1 , a 2 , a 3 ) of the point which is this minimum value is selected as an approximate solution of the value (a 1 *, a 2 *, a 3 *) of the desired color data. Meanwhile, if NO is the answer in the determination in Step 304, an approximate solution corresponding to the desired color data cannot be selected. Hence, in Step 310, processing is carried out to the effect that there is no solution, and this routine ends. If minimum values of all the Mahalanobis distances Di are selected by consecutively varying the value x 1 in this processing, it is possible to obtain a closest approximate solution. It should be noted that a determination may be made as to whether or not the aforementioned semi-infinite straight line passes an odd number of times the boundary serving as the closed region in the x 1 -x 2 -x 3 space, although the computation will be complicated. In addition, although, in the above-described embodiment, a description has been given of the case where the present invention is applied to color reproduction in the color copying apparatus 18 by the subtractive mixture of color stimuli, the present invention is readily applicable to cases of color reproduction in which color data in the RGB colorimetric system on the basis of the additive mixture of color stimuli are determined so as to display a desired color on the CRT 14. Next, a description will be given of a second embodiment. In the first embodiment, an arbitrary and desired color is specified on the basis of combinations of color data in the XYZ colorimetric system and color data in the RGB colorimetric system, which are in predetermined small numbers, to effect color reproduction. In the second embodiment, on the other hand, an arbitrary relationship is estimated from a small number of relationships with respect to a first set and a second set respectively having a large number of elements and related to each other as physical amounts, and a relevant relationship is selected from a physical amount of a desired second set. First, preconditions in this embodiment will be described. Values of the first set are set as values ai (i = 1, 2, ..., K; natural numbers), values of the second set are set as values xj (j = 1, 2, ..., L; natural numbers), and it is assumed that values xi based on combinations of K values ai are determined by a function f, as shown in the following Formula (11): f j : (a 1 , a 2 , ..., a K ) → xj where p ≤ ai ≤ q (p, q: real numbers; p < q) The function f j is unknown. Here, e discrete values W obtained by equally dividing the interval between the real number p and the real number q by (e - 1) can be expressed by the following Formula (12): where e: natural number A = (q - p)/(e - 1) At this time, if it is assumed that the value ai is one of the discrete values W (ai ∈ W), and that combinations of the value xj with respect to all permutations and combinations of the value ai are known, then it follows that e K sets of correspondence are known between (a 1 , a 2 , ..., a K ) and (x 1 , x 2 , ..., x L ). In this embodiment, combinations of K values ai* corresponding to combinations of L arbitrary values xj* under these preconditions are assumed. Hereafter, the operation of this embodiment will be described. Since the main routine is similar to that of Fig. 2, a description thereof will be omitted. In Step 200 in Fig. 2 in this embodiment, an interpolation processing routine shown in Fig. 21 is executed. In Step 402 in Fig. 21, curves [a 2 ', ..., a K '] L each including arbitrary values (a 1 ', a 2 ', ..., a K ') are determined by the computing routine shown in Fig. 22. Each of these curves [a 1 ', a 2 ', ..., a K '] L is determined by carrying out spline interpolation with respect to a specific number of points plotted on each a 1 -xi coordinate plane when the value a 1 is a known value. In other words, the curves are determined on the basis of points Pa 1 , a 2 ', a 3 ', ..., a K ' on the a 1 -x 1 coordinate plane, points Qa 1 , a 2 ', a 3 ', ..., a K ' on the a 1 -x 2 coordinate plane, and points Ra 1 , a 2 ', a 3 ', ..., a K ' on the a 1 -x 3 coordinate plane in the same way as in the foregoing embodiment. Coordinate values of respective x1 coordinates are determined by effecting scanning consecutively by the known value ai, and interpolation is carried out with respect to the points plotted on the a 1 -x 1 coordinate plane, thereby determining arbitrary curves [a 2 ', ..., a K '] L . More particularly, in Step 410 of Fig. 22, each x 1 coordinate of the point P on the a 1 -x 1 coordinate plane is determined by effecting scanning by a predetermined value a H ' (any one of natural numbers satisfying 2 ≤ H ≤ K). First, values other than the predetermined value a H ' are set to known values, and e curves are determined in which the predetermined value a H ' is consecutively increased by an increment A each up to (e - 1 times)q, starting with a curve in which the predetermined value a H ' is set to a predetermined value p. Each x 1 coordinate for the predetermined value a H ' is determined from these e curves. Namely, since the x 1 coordinates are known as described above, by using these coordinates, coordinates of points of intersection between straight lines a H = a H ' and the e curves on the a H -x 1 coordinate plane where the value a H ' and the value x 1 perpendicularly intersect each other are set as solutions (values x 1 ' of the x 1 coordinates). Then, the values other than the value a H ' which have been set to known values are respectively set from the predetermined value p by the increment A each up to (e - 1 times)q, and processing similar to the one described above is performed to obtain coordinate values of the x 1 coordinates of the respective points Pa 1 , a 2 , a 3 , ..., a H ', ..., a K . In an ensuing Step 412, by using the coordinate values of the x 1 coordinates found in Step 410, scanning by a value a G is carried out in the same way as described above to obtain x 1 coordinates of points Pa 1 , a 2 , a 3 , ..., a H ', ..., a G ', ..., a K . In an ensuing Step 414, the processing in Step 412 is processed by mathematical induction to obtain x 1 coordinates of points Pa 1 , a 2 ', a 3 ', ..., a K '. In an ensuing Step 416, curves [a 2 ', ..., a K '] 1 are determined by using the coordinate values of the points thus obtained. That is, since the respective x 1 coordinates of the points Pa 1 , a 2 ', a 3 ', ..., a K ' are determined in Steps 410 to 414 above, points can be plotted on the a 1 -x 1 coordinate planes. By interpolating with respect to these plotted points, arbitrary curves [a 2 ', ..., a K '] 1 are determined. It should be noted that curves [a 2 ', a 3 '] 2 on the a 1 -x 2 coordinate plane and curves [a 2 ', a 3 '] 3 on the a 1 -x 3 coordinate plane can also be determined in a similar manner by changing the coordinate planes used above. Next, in Step 404, correspondence between the values (a 1 , a 2 , ..., a K ) of the first set and the values (x 1 , x 2 , ..., x L ) of the second set is determined by the computing routine shown in Fig. 23. Incidentally, to simplify the description, a description will be given by citing an example in which the value x1 is a predetermined value x 1 *. In Step 420 of Fig. 23, scanning is effected by a predetermined value a H (any one of natural numbers satisfying 2 ≤ H ≤ K) by using the curves [a 2 ', ..., a K '] 1 obtained above (i.e., by varying the value a H at arbitrary intervals in the range p ≤ a H ≤ r) to determine points of intersection between a curve [a 2 , ..., a H , ..., a K ] 1 and the straight line x 1 = x 1 * . At this time, the coordinate value of the value a 1 is set as a coordinate value U Hi (i: 1, 2, ..., max; max is a maximum number of points of intersection), and the point of intersection is set as a point of intersection (x 1 *, U Hi ). In addition, the value a H which gives this point of intersection (x 1 *, U Hi ) is set as a value V H . In an ensuing Step 422, values x 2 to x L corresponding to the points of intersection found in Step 420 are determined. First, to determine the value x 2 , the value x 2 is determined by using a curve [a 2 , ..., a H (V H ), ..., a K ] 2 corresponding to a curve [a 2 , ..., a H (V H ), ..., a K ] 1 having a point of intersection. Namely, when the point of intersection on the curve [a 2 , ..., a H (V H ), ..., a K ] 1 in which the value a H is V H is a coordinate value U Hi as shown in Fig. 24A, a value x 2 is determined at which the value a 1 is a coordinate value U Hi on the curve [a 2 , ..., a H (V H ), ..., a K ] 2 (corresponding to the above curve) on the a 1 -x 2 coordinate plane, as shown in Fig. 15(B). Similarly, as shown in Fig. 15C, the value x L is finally determined from a curve [a 2 , ..., a H (V H ), ..., a K ] L on the a 1 -x L coordinate plane using the curve [a 2 , ..., a H (V H ), ..., a K ] L . In this manner, the values x 2 to x L which correspond to the points of intersection ((x 1 *, U Hi ) at which the coordinate value a 1 is the coordinate value U Hi are determined. Accordingly, if the above processing is executed by consecutively varying the predetermined value of the value a H which is set, it is possible to determine all the correspondences between the values (a 1 , a 2 , a 3 , ...) of the first set and the values (x 1 *, x 2 , x 3 , ...) of the second set. It should be noted that if the above processing is executed by varying the value x 1 in the range that the value x1 can assume, it is possible to determine all the correspondences between the values (a 1 , a 2 , a 3 , ...) and the values (x 1 , x 2 , x 3 , ...). In an ensuing Step 406, a space serving as a determination region including arbitrary values is determined from the respective values x 2 to x L of the points of intersection determined in the above. Namely, the values x 2 to x L of the points of intersection defined by x 1 = x 1 * are plotted in the x 2 -x i - x L coordinate space (an L - 1 dimensional space) as characteristic points SDi (i: 1 ≤ i ≤ MAX; MAX is the total number of characteristic points). This coordinate space is set as a determination region used below. Incidentally, a closed region including all the points plotted in this coordinate space may be determined, and may be set as a boundary CC. Next, Step 300 in this embodiment is a processing step for determining values (a 1 *, a 2 *, ..., a K *) corresponding to arbitrary values (x 1 *, x 2 *, ..., x L *) from the determination region determined in the above. First, values (x 2 *, ..., x L *) are extracted from desired arbitrary values (x 1 *, x 2 *, ..., x L *), and are set as desired points SSD. Then, the distance Di of each point is determined in the space serving as the aforementioned determination region by using the following Formula (13): Di = SDi - SSD Next, smallest values of the distances thus determined are selected, and respective values x 2 to x L of the characteristic points SDi corresponding to the selected smallest values are set as solutions. Values (a 1 , a 2 , ...) corresponding to these solutions are selected as approximate solutions. It should be noted that a determination may be made as to whether or not the characteristic points plotted in the coordinate space in the same way as in the above-described embodiment are included in the aforementioned boundary CC, and that the above processing may be effected if it is determined that the points are present within the boundary CC. This second embodiment is applicable to character recognition. In this case, a set of characteristic amounts of characters is used as the first set, while a set of characters is used as the second set. Accordingly, if characters xj (j = 1, 2, ..., L; natural numbers), i.e., the second set, with respect to characteristic amounts ai (i = 1, 2, ..., K; natural numbers) of characters in the first set are determined with respect to a predetermined number of characters, and their relation is determined from the function f of Formula (11) above, it is possible to specify corresponding (approximate) characters from combinations of the characteristic amounts ai of characters in an arbitrary first set. Thus, in the above-described embodiment, since desired data can be converted on the basis of a small number of data, and multi-intersection processing, which has conventionally been difficult to perform, is discriminated by the intersection number, a determination as to whether or not desired data is included can be easily made by determining whether the data is located inside or outside a region. Although, in the above-described embodiment, a description has been given of an example in which curves are determined by spline interpolation, it is possible to use other interpolation methods.

Claims: A method of color reproduction comprising the steps of: (a) determining a plurality of predetermined relationships of correspondence between first values expressed in a predetermined colorimetric system for outputting a predetermined number of colors and second values expressed in a colorimetric system, which is different from the predetermined colorimetric system, for specifying a color to be reproduced, and estimating a plurality of interpolating points as estimated second values other than predetermined second values; (b) calculating by performing interpolation on the basis of said plurality of predetermined relationships the first values corresponding to the estimated second values; (c) when an arbitrary color is to be reproduced, selecting the second values which are identical to or closest to the second values of the arbitrary color from the estimated second values, and selecting the first values corresponding to the identical or closest second values; and (d) reproducing the color on the basis of the selected first values. A method of color reproduction according to claim 1, wherein the plurality of relationships of correspondence are nonlinear relationships. A method of color reproduction according to claim 1, wherein the predetermined colorimetric system is an RGB colorimetric system, and the different colorimetric system is an XYZ colorimetric system, and wherein the first values are data on at least one of a color material and a bright material, and the second values are tristimulus values.

Inventors: TAKAGI ATSUSHI, TAKAGI, ATSUSHI, TAKAGI, ATSUSHI, C/O TOYOTA JIDOSHA K. K.
Applicants: TOYOTA MOTOR CO LTD, TOYOTA JIDOSHA KABUSHIKI KAISHA
Application year: 1994
Main classification: G01J3
IPC codes: H04N1, C09D7, G01J3