Printed colors in an image may not exactly match target colors specified in a proof version of the image or a digital target image, for example due to printer specific variations. In order to print colors with a high level of accuracy (for e.g. brand colors, emulated spot colors etc.) corrections may therefore be applied so that printed colors more closely resemble target colors.
Non-limiting examples will now be described with reference to the accompanying drawings, in which:
Colors may be produced in a printed image using a set of process colors such as Cyan, Magenta, Yellow and Black (CMYK), Cyan, Magenta, Yellow, Black, Orange, Green and Violet (CMYK-OGV), or another set of colors. The process colors may be combined by printing them on a print target using halftoning techniques to produce a gamut of different colors in a printed image. In order to correct for any variations or inaccuracies in color representation in printed images, global corrections may be applied to the amounts/ratios/coverage levels of the process colors used to provide the colors. However, applying global corrections to the process colors may improve the accuracy of representation of one color in the image but may cause another color in the image to drift further away from its target. Therefore, it can be useful to apply corrections separately to each color represented in the image.
High color accuracy may be particularly of interest for dominant colors in an image. For example, if an image includes a small number of pixels with a particular color, the color accuracy of those pixels may be lower priority than a color which is present in a large number of pixels in the image. Examples described herein may therefore automatically detect dominant colour(s) in an image so that color specific corrections can be applied to the dominant colors in particular, to ensure their accuracy. Dominant colors in an image may be more likely to represent e.g. brand colors, for which a higher level of accuracy is often wanted by a user of a printing system. The method described herein may ensure the color accuracy of an image meets the expectations of a user, without the user having to provide extra information such as defining certain colors as spot colors or explicitly specifying for which areas of the image a higher color accuracy is wanted.
Color can be represented within imaging devices such as print and display devices in a variety of ways. For example, in one case, a color as observed visually by an observer is defined with reference to a power or intensity spectrum of electromagnetic radiation across a range of visible wavelengths. In other cases, a color model is used to represent a color at a lower dimensionality. For example, certain color models make use of the fact that color may be seen as a subjective phenomenon, i.e. dependent on the make-up of the human eye and brain. In this case, a “color” may be defined as a category that is used to denote similar visual perceptions; two colors are said to be similar if they produce a similar effect on a group of one or more people.
Within this context, a color model may define a color space. A color space in this sense may be defined as a multi-dimensional space, with a point in the multi-dimensional space representing a color value and dimensions of the space representing variables within the color model. Color spaces may include, for example, an RGB color space or an L*a*b* color space. A color space can also be based on a set of process colors within a printing apparatus. For example, a Cyan, Magenta, Yellow and Black (CMYK) color space, in which four variables representing four process colors are used in a subtractive color model to represent different quantities of colorant. For example, the color space may be defined by a set of orthogonal axes, each defining an amount or coverage level (per area) of a different process color, such that each point in the color space effectively represents a recipe of the amount of each process color needed to represent the color located at that point in the color space. In some examples a color space may be based on a HSL (hue, saturation, lightness) or a HSV (hue, saturation, value) color model, wherein a vector defined in the color space has a property that represents a hue.
Each point in the color space represents an amount of each of the process colors. A corresponding vector can be defined for each point in the color space as a line, from an origin of the color space (representing a white point) to the point. For example, a color vector for representing a first color having a particular grayscale level defined in CMYK color space may be defined as Sa=(CMYK)=(1, 0.32, 0, 0.14) All point sitting along the same line from the origin as the color vector will have the same ratio of process colors and therefore will represent different grayscale levels (or tints) of the same color. For example, a color vector defined in CMYK color space as (0.5, 0.16, 0, 0.07) would represent a lighter tint of the first color defined above, as it has the same direction but a shorter length.
In some examples the target image may be a physical printed proof image that may be scanned, for example by a spectrophotometer to determine a color vector for each area. In some examples, the target image may be a digital image file, from which a color vector may be acquired for each area. In some examples a color vector may be determined for each pixel of the image. The digital image file may be e.g. one or a set of image files received from a raster image processor engine.
Block 104 comprises producing a color histogram of the target image by associating each area of the target image with a histogram bin representing a particular color, based on the determined color vector of the area. That is, each histogram bin may represent a different color vector. In some examples, different grayscale levels of the same color may be placed in the same histogram bin, i.e. each histogram bin is associated with a set of color vectors all having a same direction or angle in the color space. In some examples substantially similar color vector directions (i.e. with small angles between them) may be represented by a single histogram bin, for example where these color vectors would be perceived by a viewer as the same or substantially the same color.
In some examples, the color vectors may be defined in, or converted to a color space that is not based on process colors, prior to histogram creation. For example, the target image data may be received in process color space and then converted from process color space to a different color space prior to defining the vectors and creating the histogram. For example, in a HSL (hue, saturation, lightness) or HSV (hue, saturation, value) color space. In that case, the hue scalar of the color vector represents a particular hue and image areas may be sorted into histogram bins based on the hue of that area. This can provide improved performance when certain color transformations such as gray level replacement color profile are applied to the job. In some examples, the target image may be received (e.g. from a RIP engine) with the color of each pixel defined in process color space, and the method 100 may include, at block 102, converting color data of the target image to a different color space prior to determining the color vectors. The different color space may be a color space that represents hue as a direction of a color vector defined in that space or in a particular plane of that space e.g. HSL or HSV.
Block 106 comprises defining a dominant color represented by a histogram bin associated with a highest number of image areas as a dominant color of the target image. The histogram bins may be ranked by how populated they are (e.g. how many pixels of that color are present in the target image). The color represented by the most populated bin may then be defined as a dominant color of the image.
In some examples, the color represented by the second most populated bin may also be defined as a dominant color of the image. I.e. block 106 may also comprise comprising defining a histogram bin associated with a second highest number of image areas as a second dominant color of the target image and applying a correction to the print version of the target image for an area that corresponds to an area in the target image having the second dominant color. The correction applied to the dominant color area may be different from the correction applied to the second dominant color area. That is, using the method 100 of
In some examples, a plurality of colors of the target image may be defined as dominant colors based on the absolute or relative numbers of pixels or otherwise defined image areas that have been sorted into the histogram bins representing these colors. In some examples all of the colors in a target image may be defined as dominant colors. In some examples, a color may be defined as a dominant color if a histogram bin representing that color has an associated number of image areas that is higher than a threshold number. In other examples, a predetermined number of the most highly populated bins may each be determined to represent a dominant color (for example the five or ten most populated histogram bins).
Block 108 of method 100 comprises applying a correction to the print version of the target image for an area that is intended to have the dominant color. Block 108 may comprise applying a correction to all areas of the print version of the target image that are intended to have the dominant color. In some examples, the areas that are intended to have the dominant color may be determined by determining which areas of the print version of the image have a location that corresponds to an area in the target image having the dominant color.
The method 100 may therefore enable a correction or retouch of dominant colors in an image without affecting other colors in the image and without needing to re-rasterize the image. The method may also enable control over all dominant colors in a job and not just those that have been predefined as e.g. spot colors. The method 100 may enable fast or real-time color correction and more efficient use of processor resources, as color correction can be prioritized for the dominant colors of an image rather than correcting all colors of the image.
In some examples, a color correction may comprise adjusting an amount or a ratio of process colors used to produce the color to be corrected. In some examples, the correction may be applied specifically to colors previously defined as dominant colors.
In some examples, where a plurality of dominant colors have been identified in the target image, an applied correction for a particular area of the image to be printed may depend on which dominant color that area is intended to have. Therefore, color specific corrections can be applied to each color individually.
In some examples, areas that are intended to have the dominant color may be determined by performing a color analysis on the print version of the image prior to printing. The color analysis may comprise determining a color vector for each area of the print version of the image. The print version color vectors may then be used to determine a distance between the print version color vector and a color vector associated with the dominant color. If the distance between these two vectors is below a threshold, the method may comprise determining that the area of the print version of the image is intended to represent the dominant color. If the difference is below the threshold, applying the correction may comprise reducing the difference so as to substantially reproduce the dominant color of the target image in the output of a printing apparatus. In some examples, the difference may be reduced to zero so that the color of the area to be printed exactly matches the dominant color. In some examples, the difference may be reduced, but not to zero, for example to provide smoother blending effects between colors in the image. In some examples the amount of difference reduction applied may be based on the size of the difference, with smaller corrections being applied to colors that have a greater initial distance in color space from the dominant color.
In some examples, the method 100 may comprise converting the print version of the image to a different color space than the printer's process colors for the color analysis and correction and then converting the corrected image data for the print version of the image back to process color space prior to printing.
The print version color vectors may be determined from a file comprising digital print instructions from the image or an emulated image representing how the image will look when printed on a particular printer. In some examples, the print version color vectors may be determined from a previously printed version of the same target image, e.g. using a color measurement device such as a spectrophotometer. In some examples the particular correction to be applied may be selected or defined by a user of a printing apparatus, for example based on visual inspection of a hard copy proof version of a target image. In other examples the correction process may be fully automated. In this way the method 100 can provide a closed loop control over dominant colors in an image for printing.
In some examples, the method may comprise saving corrected color data for future prints of the same target image. In some examples, the method may comprise, after applying the color correction to the image to be printed, re-rasterizing the image to be printed, after applying the new color values to the RIP. Re-rasterizing the image after applying corrections may provide an improved color match if the same job is re-printed later on the same printer.
In some examples, the color vector is defined in a color space having a white point at an origin of the color space and wherein each axis of the color space represents a separate one of the process colors of the printing apparatus. In some examples a direction of the color vector from the white point of the color space represents the ratio of process colors of the printing apparatus and a length of the color vector from the white point of the color space represents a coverage level of process inks to be applied to an area having a color represented by the color vector.
In some examples, sorting the areas into bins comprises sorting the areas into bins of a color histogram, with each bin representing a different ratio of process colors. That is, color vectors having a same direction but different length may be sorted into the same bin of the color histogram. In this way, any corrections applied to a particular color will be applied consistently to all grayscale shades of that color, having the same relative ratio of process colors. In some examples, areas may be sorted into histogram bins based on both the direction and length of their associated color vector, such that each histogram bin represents a point in the color space. In this case, color vectors ending at points within a threshold radius of a particular point may be sorted into the same color bin, for example where color points that fall within the threshold radius represent colors that would be perceived by a viewer as the same or substantially the same color.
In some examples, the color vectors may be defined in a different color space. For example, in a HSL (hue, saturation, lightness) or HSV (hue, saturation, value) color space. In that case, a direction of the color vector represents a particular hue and image areas may be sorted into histogram bins based on the hue of that area. This can enable improved performance if a gray level replacement color profile is applied to the job. In some examples, the target image may be received (e.g. from a RIP engine) with the color of each pixel defined in process color space, and the processor 302 may be to convert color data of the target image to a different color space such as HSL or HSV prior to determining the color vectors.
In some examples, the processor 302 is to define a plurality of dominant colors of the target image, wherein the plurality of dominant colors are represented by a plurality of highest populated bins and apply a color correction to each area of the image to be printed that has a color that corresponds to one of the plurality of dominant colors.
In some examples, the processor 302 may be part of a press of the printing apparatus 300, that is, the processor 302 may be located after a digital front end comprising a raster image processor in a workflow of the print apparatus.
The printing apparatus 300 also comprises a printer 304 to print the color corrected image. The printer 304 may be, for example a 2D printing system such as an inkjet or digital offset printer, or a 3D printing system, otherwise known as an additive manufacturing system.
In some examples, the instructions 404 may be to define a plurality of dominant colors of the target image based on the most populated bins.
In some examples, the instructions to apply the correction may comprise instructions to compare a color of a pixel in the image to be printed with the dominant color to determine a difference between the color of the pixel to be printed and the dominant color. If the difference is below a predetermined threshold, the instructions may be to determine that the color of the pixel to be printed corresponds to the dominant color, and reduce the difference by adjusting one or a plurality of color values of the pixel to be printed (e.g. by adjusting the amounts, relative ratios or coverage levels of one or a plurality of the process colors).
The present disclosure is described with reference to flow charts and/or block diagrams of the method, devices and systems according to examples of the present disclosure. Although the flow diagrams described above show a specific order of execution, the order of execution may differ from that which is depicted. Blocks described in relation to one flow chart may be combined with those of another flow chart. It shall be understood that each flow and/or block in the flow charts and/or block diagrams, as well as combinations of the flows and/or diagrams in the flow charts and/or block diagrams can be realized by machine readable instructions.
It shall be understood that some blocks in the flow charts can be realized using machine readable instructions, such as any combination of software, hardware, firmware or the like. Such machine readable instructions may be included on a computer readable storage medium (including but is not limited to disc storage, CD-ROM, optical storage, etc.) having computer readable program codes therein or thereon.
The machine readable instructions may, for example, be executed by a general purpose computer, a special purpose computer, an embedded processor or processors of other programmable data processing devices to realize the functions described in the description and diagrams. In particular, a processor or processing apparatus may execute the machine readable instructions. Thus, functional modules of the apparatus and devices may be implemented by a processor executing machine readable instructions stored in a memory, or a processor operating in accordance with instructions embedded in logic circuitry. The term ‘processor’ is to be interpreted broadly to include a CPU, GPU, processing unit, ASIC, logic unit, or programmable gate array etc. or some combination of these. The methods and functional modules may all be performed by a single processor or divided amongst several processors.
Such machine readable instructions may also be stored in a computer readable storage that can guide the computer or other programmable data processing devices to operate in a specific mode. Further, some teachings herein may be implemented in the form of a computer software product, the computer software product being stored in a storage medium and comprising a plurality of instructions for making a computer device implement the methods recited in the examples of the present disclosure.
The word “comprising” does not exclude the presence of elements other than those listed in a claim, “a” or “an” does not exclude a plurality, and a single processor or other unit may fulfil the functions of several units recited in the claims.
The features of any dependent claim may be combined with the features of any of the independent claims or other dependent claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2019/067811 | 12/20/2019 | WO |