Objective-based color selection system

Abstract: A computerized color selection system which selects colors based on a user's designation of color impact objectives which specify how colors affect those who view the colors rather than specifying the colors themselves. A user selects a combination of color impact objectives from among plural such color impact objectives, such as audience, occasion, style and tone. In correspondence to each color impact objective, a relevance relation is defined. The relevance relation specifies, for its corresponding color impact objective, relevance values which indicate the degree to which different colors meet the color impact objective. Relevance relations associated with the user's selection of color impact objectives are selected, and the selected relevance relations are inspected to identify the maximum relevance value from all the selected relevance relations. The color which corresponds to the maximum relevance value is then selected as the color which best fits the user's selection of color impact objectives.

Description: The present invention relates to a computer-aided color selection system which automatically selects colors based on user-selected color impact objectives. More particularly, by combining color impact objectives, which do not specify colors per se but which specify how colors affect those who view them, the present system selects colors which are tailored to meet those objectives. Recently-developed coloring programs provide the computer operator with tools to help in coloring documents. For example, such coloring programs as ColorUP or Power Point provide "canned" color schemes which include static sets of color palettes so as to be useful for a wide range of document coloring tasks. However, color professionals, such as designers and artists, tend to base color decisions on goals and constraints of a job on which they are working. Therefore, "canned" color palettes may not contain the appropriate colors for a particular task. Furthermore, these coloring programs are difficult to use. As a specific example, since the coloring programs do not have a universally compatible interface with other applications, the user not only has to determine appropriate colors, but also has to change the software interface path of the coloring program in order to explicitly import the features of the coloring program into another application, such as a text-editor application. As a result, a color professional, who is proficient at making good color selections but who may not be proficient in computer operations, finds conventional coloring programs cumbersome and complicated. Currently, there are no known programs which make recommendations as to an appropriate color scheme for a specific objective. For example, no conventional coloring program is known which provides the user with advice as to a color scheme which most appropriately portrays a user's color impact objectives, such as colors which are explicitly suited for a particular audience or which convey a particular mood or message. Moreover, no conventional coloring application automatically selects colors and organizes them into a color palette in such a way as to provide flexible and intuitive guidance on how the colors should be used and how each selected color relates to the other. Heretofore, computer-aided color advice has not been available to assist the professional and novice user in selecting a color scheme for inclusion in a document or graphical image, based on the user's objectives. Moreover, no coloring program currently provides a colorizer which provides advice as to how to apply a generated color scheme to a document composition by rapidly generating and displaying thumbnail sketches of the user's documents that have been automatically colorized in various colors using the generated color scheme. As a result, both the professional color user and the novice color user are confronted with the problem of using coloring programs which offer color schemes which may be unsuitable to satisfy a particular coloring goal. EP-A-0528599 discloses an interface that allows a user to select, amongst other things, a color palette using user subjective criteria. Each color palette is assigned values for each criteria and the color palette having the closest fit to input user subjective criteria is determined using eigen vectors: the closest fit having the smallest eigen vector difference. In accordance with a first aspect the present invention provides a method of selecting colors based on a user's selection of some color impact objectives from among plural such color impact objectives which specify how colors affect those who view the colors, the method comprising the steps of: storing a relevance relation for each color impact objective, said relevance relation for each color impact objective specifying both a color for each of plural hues of colors and a relevance value for each of said plural hues of colors and a relevance value for each of said plural hues of colors indicating a degree of relevance of the corresponding color to said color impact objective; determining relevance relations corresponding to the color impact objectives selected by the user; combining the determined relevance relations to provide a maximum relevance value for each of said plural hues of colors and the colors corresponding to each said maximum relevance value for each hue; identifying an overall maximum relevance value for all of said plural hues of colors from the combination; and selecting the color which corresponds to said overall maximum relevance value as a visually dominant color. In accordance with a second aspect the present invention provides an apparatus for selecting colors based on a user's selection of some color impact objectives from among plural color impact objectives which specify how colors affect those who view the colors; said apparatus comprising: storing means for storing a relevance relation for each of said plural color impact objectives, said relevance relation for each color impact objective specifying both a color for each of plural hues of colors and a relevance value for each of said plural hues of colors and a relevance value for each of said plural hues of colors indicating a degree of relevance of the corresponding color to said color impact objective; designation means for the user selection of at least some of said plural color impact objectives; determining means for determining relevance relations corresponding to the color impact objectives designed by said designating means; combining means for combining the relevance relations determined by said determining means to provide a maximum relevance value for each of said plural hues of colors and the colors corresponding to each said maximum relevance value for each hue; identifying means for identifying an overall maximum relevance value for all of said plural hues of colors from said combination created by said combining means; and selecting means for selecting the color as a visually dominant color which corresponds to said overall maximum relevance value identified by said identifying means. Thus, the present invention permits selection of color in terms of the user's goals and objectives for those colors, such as the intended emotional tone, style, and attitude that is desired for the colors to convey, or such as the audience, occasion, and style anticipated for the colors, or the like. These objectives may be combined as desired by the user, and the present invention will select colors based on the designated combinations. Thus, the present invention provides for selection of colors based on a user's selection of some color impact objectives from among plural such color impact objectives. Typical color impact objectives may include color impact objectives in the category of audience (such as business, professional, sales, marketing, technical, financial, military, and the like), the category of occasion (such as festive, congratulatory, product announcement, periodical, technical report, marketing report, and the like), the category of style (such as elegant, tropical, tranquil, exotic, sporty, light-hearted, dry, chic, and the like), and the category of tone (such as pleasant, romantic, strong, warm, neutral, and the like). In correspondence to each color impact objective, a relevance relation is defined. The relevance relation specifies, for its corresponding color impact objective, relevance values which indicate the degree to which different colors meet the color impact objective. Relevance relations associated with the user's selection of color impact objectives are selected, and the selected relevance relations are inspected to identify the maximum relevance value from all the selected relevance relations. The color which corresponds to the maximum relevance value is then selected as the color which best fits the user's selection of color impact objectives. If desired, more colors may be selected by selecting, in order, colors which correspond to the next succeeding maximum relevance values. In one preferred form, each relevance relation is comprised by a table which stores relevance values as a function of different hue angles and which stores a saturation and a brightness value for each of those different hue angles. In this case, the selected color is the color which has the same hue angle and saturation and brightness which corresponds to the maximum relevance value. Harmonious colors may also be selected based on the colors selected from the relevance relations. In this case, suitable harmonizing colors are calculated from the selected color based, for example, on triadic color variation around the color wheel. Embodiments of the present invention will now be described with reference to the accompanying drawings, in which: Figure 1 is a perspective view showing the outward appearance of an apparatus according to an embodiment of the present invention; Figure 2 is a block diagram of the Figure 1 apparatus; Figure 3 illustrates a hierarchy of display windows for selecting a color scheme and for colorizing a document utilizing the selected color scheme; Figure 4 is a flow diagram describing the method for selecting a color scheme; Figure 5 is a representational view of a window display for building a color scheme from color impact objectives; Figure 6a is a representational view of a window display for defining physical color attributes and Figure 6b is a representational view of a window display for selecting data color attributes; Figures 7a and 7b are representational views of window displays of selected data colors; Figure 8 is a representational view of a color tuner window display; Figure 9 is a flow diagram describing the method for colorizing pages of a document; Figure 10 is a representational view of a window display illustrating variably colorized thumbnail sketches of a document page in the colorizing window; Figure 11 is a representational view of a window display illustrating the color view of the colorized document page image selected by the user from the thumbnail sketches illustrated in Figure 10; Figure 12 is a representational view of a window display illustrating the template view of the selected document page image; Figure 13 is a representational view of a window display illustrating the object outlines view of the elements in the selected colorized document page; Figure 14 is a representational view of a window display illustrating an object and template view of a document to be colorized; Figure 15 is a representational view of a window display illustrating the method for adjusting the color of data images in a document page; Figure 16 is a representational view of a window display illustrating the manner of saving a colorized document; Figure 17 is a representational view of a window display illustrating the manner of printing a colorized document; and Figure 18 is a representational view of a window display illustrating the manner in which the foregoing representational views of window displays are overlaid in a windowing environment. Figure 1 is a view showing the outward appearance of a representative embodiment of the invention. Shown in Figure 1 is computing equipment 10, such as a MacIntosh or an IBM PC or PC-compatible computer having a windowing environment, such as MicroSoft® Windows. Provided with computing equipment 10 is display screen 12, such as a color monitor, keyboard 13 for entering text data and user commands, and pointing device 14, such as a mouse, for pointing and for manipulating objects displayed on screen 12. Computing equipment 10 includes a mass storage device such as computer disk drive 11 for storing data files which can include document text files and image files, in compressed or uncompressed format, and for storing application program files which can include a color scheme selection/colorizer application program, desktop publishing program, or other information processing programs which contain stored program instruction text by which computing equipment 10 manipulates the data files and presents data in those files to an operator via display screen 12. Image data is input by scanner 16 which scans documents or other images and provides bit map images of those documents to computing equipment 10. Data may also be input into computing equipment 10 from a variety of other sources such as network interface 24 or other external devices via facsimile/modem interface 26. Printer 18 is provided for outputting colorized documents processed by computing equipment 10. It should be understood that, although a programmable general-purpose computer arrangement is shown in Figure 1, a dedicated or stand-alone computer or other type of data processing equipment can be used to practice the invention. Figure 2 is a detailed block diagram showing the internal construction of computing equipment 10. As shown in Figure 2, computing equipment 10 includes a central processing unit (CPU) 20 interfaced with computer bus 21. Also interfaced with computer bus 21 is scanner interface 22, printer interface 23, network interface 24, fax/modem interface 26, display interface 27, keyboard interface 28, mouse interface 29, main memory 30, and disk 11. Main memory 30 interfaces with computer bus 21 so as to provide random access memory storage for use by CPU 20 when executing stored program instructions such as the desktop publishing program or the color scheme selection/colorizer application program. More specifically, CPU 20 loads those programs from disk 11 into main memory 30 and executes those stored programs out of main memory 30. In accordance with operator instructions, stored application programs are activated which permit processing and manipulating of data. For example, a desktop publishing program such as WordPerfect® for Windows may be activated by an operator to create, manipulate and view documents. Likewise, a colorizing program may be activated to permit the operator to colorize the document produced by the desktop publishing program. In the embodiment of the present invention, some of the programs stored in disk 11 are "pluggable" programs, which can execute, from within themselves, one of a number of plug-in utility programs. The application program can invoke the utility, send it data, and retrieve any results from it. Ordinarily, the application program and the utility share a common file format and are capable of sensing the presence of each other's activities on the computer system. In operation, the currently executing program contains a menu for selecting any of the plug-in programs in the system. For example, while creating a document, a document-processing program application can generate a color scheme by executing the color scheme creation/colorizer program so that the document being created can be colorized. In a similar manner, the embodiment of the present invention can operate independent from any other utility programs. In operation, the user is allowed to create color schemes and to input documents created by other utility programs so that the documents can be colorized. An embodiment of the invention can also operate from within print driver software for computing system 10. In this case, the print driver intercepts normal software calls to the driver to print an uncolorized document, and invokes document colorization routines so as to colorize the document prior to print. In addition, an embodiment of the present invention can also operate as a shared resource on a computer system, for example as a customized replacement of the system color picker in the MicroSoft® Windows operating system. Figure 3 illustrates a hierarchical order of window displays for selecting a color scheme and for colorizing a document. This illustration will be used to provide a brief overview of the color scheme selection/colorizer program. As shown in Figure 3, when CPU 20 executes the colorizer program from memory, the first part of the program permits the selection of a color scheme. Once the color scheme is selected, the second part of the program permits colorization of a document. As shown representationally, at the outset of the program, default palette window 31 is displayed and the user is provided with the ability to select color impact objectives from within window 31 to begin building a customized color scheme. In addition to selecting the color impact objectives, physical color attributes can be set by the user. Physical color attributes are designated in physical color attributes window 32 by defining settings for various features of the colors to be defined for selecting the color scheme. In the case that data objects exist in the document, such as pie charts or graphs, it is possible to open, from the physical color attribute menu, data-color-attributes window 34 to define the data colors. Once the desired color impact objectives and physical attributes are selected, a color scheme and associated data colors are determined. Data color window 35a can be called to display a color tile which corresponds to each defined data color, as defined in window 34. However, if no data color definitions are selected, data color window 35b alerts the user that no data colors have been defined. In either case, after physical color attributes and data color attributes (if necessary) are set, a user can fine-tune the color scheme and data color selections using color tuner window 36. Thereafter, the selected color scheme and data colors can be stored using window 44 and, if desired, exported to another utility program for use therein. Once the color scheme has been selected, the color scheme can be used to colorize predesignated areas of a document created by a desktop publishing program. Thus, using colorizer window 37, a page of a document which has been selected and retrieved from a desktop publishing program file can be displayed and colorized. More specifically, the document page is reproduced as a plurality of thumbnail sketches which are smaller abstracts of the page document and are variously colored with combinations of colors from the current color scheme. The user selects one of the colored abstracts from the plurality of thumbnail sketches. Then, using windows 39-42, the selected document page colorization can be modified, if desired. That is, any of the colored elements on the page can be colored with a different color from the scheme, as illustrated in page-tuner window 43. It is also possible to modify any of the colors directly. Once a color scheme is defined, any color in window 31 can be modified. This can be done at any time, before or after applying the color scheme to a document. When the user has completed the task of colorizing each of the desired pages in a document, save-color-document window 46 can be opened and the user can save the colorized document by identifying the document to be saved. Figure 4 is a flow diagram illustrating the process of selecting a color scheme. The process steps shown in Figure 4, and in the other flow diagrams of this specification, are executed by CPU 20 using instruction sequences stored in memory 30. In step S401, the color scheme selection program of the color selection/colorizer program displays default-palette window 31. Though not shown in Figure 5, default-palette window 31 initially appears with only portions A and B of the window present. In step S402, the color scheme-builder portion of the program can be actuated by using mouse 14 to insert the cursor in box 50. When the scheme-builder program is executed, portion C of default-palette window 31 appears. Portion C of default-palette window 31 contains a pop-up menu of user-selectable color impact objectives. Color impact objectives allow a user to specify objectives for colors rather than the colors themselves. Typical color impact objectives include themes relating to audience, occasion, style, tone, and the like. A more complete example of some color impact objectives, and their themes, is shown below in Table A. Color Impact Objectives Emotional Tone Style Message Quiet Elegant Sports Forceful Festive Party Loud Intimate Activity Angry Aggressive Wedding Somber Wild Baby Peaceful Luxurious Negotiation Joyful Fashionable Solicitations Romantic Formal Informative Business Noble Musings Conservative Proposal Conventional Announcement Personal Business Audience Environment Feel Time Feel Management Ocean Winter Coworkers Mountains Spring Friends Forest Summer Children Desert Fall Teens Southwest 1920 USA Adults Northwest 1960s USA Elderly Outer Space Evening West South Pacific Night Mid-west Institutional Morning East Noon Afternoon Use Cultural Context Institution Presentation Italians IBM Report Japanese Apple Poster Rockers Aldus Newsletter Punk-Thrash Canon Article Reage-ska United Nations Technical paper New Age Documentation Christian Fine Art Designer Far Eastern Mid Eastern Native American Latin Combinations of objectives, such as "Audience" 47 and "Emotional Tone" 48, can be selected to define a more specific color scheme which combines objectives. Each color impact objective has a pop-down window such as window 49 which displays user-selectable themes such as "Party" in objective window "Message". While Table A provides various listings of both objectives and themes, it is to be understood that the color impact objective listings and color impact theme listings are only examples of objectives and themes which could be used with the color scheme selection/colorizer program. In step S403, the user can further define the color scheme by determining physical color attributes, such as the number of colors to use, the source of the colors, and various other physical objectives which affect the color selection. The physical attributes of the color scheme are defined by actuating physical color attributes menu button 52. Upon actuating physical color attributes menu 52, physical color attributes window 32 is overlaid over window 31. For example, in Figure 6a, one of the physical color attributes that has been set for the color scheme is the palette size: three main colors (one dominant and two coexisting), three supporting colors (a set of three for the dominant color and each coexisting color), and two highlight colors. As shown in Figure 6a, the physical color attributes may be further defined by setting the "bit depth", "source", what the color is to be "output" on, whether or not to account for color vision disability, etc. Examples of some of the physical attribute selections from which to choose are shown below in Table B. Physical Color Attributes Bit Depth Source 1 bit color Spectrum 2 bit color Device Gamut 4 bit color Palette 8 bit color Pantone™ 24 bit color Trumatch™ Focoltone® Toyo88 ColorFinder™ ANPA-Color™ Also, in step S403, the user can select data color attributes by actuating data-color-attribute window 34 shown in Figure 6a. Data colors are special colors that are used to color data elements, like bar charts and pie charts, in documents. Because the data is usually a highlighted part of a document, the data colors are usually different from the other colors used to colorize the document page. By selecting data color attributes box 56 in the physical color attributes window 32, the user can define data color attributes by actuating data-color-attribute window 34, as shown in Figure 6b. Examples of some of the data color attribute selections are shown below in Table C. Data Color Attributes Source Color Types Spectrum All Types Pantone Pastels Printer Gamut Earth Tones Metallic Fluorescent Colors Relations Only Specified Color Free Mostly Specified Color Harmonious Any Colors Contrasting Dissonant Using the settings in data-color-attribute window 34 and the general rule that data colors are usually vivid saturated colors of widely contrasting hues, the user-specified number of data colors are defined and can be displayed by the user in color data window 35a, shown in Figure 7a. On the other hand, if no data colors have been defined, color data window 35b in Figure 7b is displayed. In step S404, by selecting button reference 51 "Build scheme" in window 31, the combination of selected color impact objectives, as constrained by the selected physical color attributes from physical color attribute window 32 and data color attribute window 34, are used by CPU 20 to select a color scheme and data colors; for example, one dominant color and two coexisting colors from the color knowledge base stored in disk 31. The process of selecting a color scheme by using a knowledge base can be performed by any well-known method, such as using a set of user-defined rules, fuzzy logic, or predesignating specific relationships between objectives and colors; for example, assigning a specific set of colors to each objective setting. More preferably, however, dominant and co-existing colors are selected in accordance with one of the methods described below. These methods combine the user-selected color impact objectives so as to select the most suitable dominant and co-existing colors. A first method of selecting dominant and co-existing colors, which is described in detail in Appendix 1.1, combines color impact objectives by assigning relevance values to each of the color impact objectives, adding the relevance values for the selected color impact objectives, and, for the dominant color, finding the maximum solution relevance value. More specifically, for each color impact objective, a relevance value is assigned to each of plural hue angles around a color wheel in HSB color space ("hue", "saturation", and "brightness"). The dominant color is selected by adding relevance values for each color impact objective designated by the user, and finding the maximum, as described above. Co-existing colors are selected by traversing the color wheel in triadic angular increments (i.e. 120°). Supporting colors are then selected by varying hue, saturation and brightness such that each supporting color is less saturated and darker than its associated dominant or coexisting color. A second method of selecting dominant and coexisting colors, which is described in detail in Appendix 1.2, combines color impact objectives by selecting the maximum relevance values from among the user-designated objectives, for each hue angle. After the dominant color and coexisting color(s) is/are selected, CPU 20 generates supporting colors for each of the major colors by shifting the major colors (the major colors are the dominant and the coexisting colors) in color space. At this time, the highlight and data colors, if any, are defined as well. A method for deriving supporting colors and highlight and data colors is described in section 1.3 of the attached Appendix. In steps S405 and S406, the color agent program, which is a terminate and stay-resident (TSR) program, can be applied to skew color selections. The color agent varies the displayed color scheme by adding skew factors, which are based on a user's personal color preferences, and current color working trends. That is, as the user works on the computer, the color agent program remains active in the background so as to maintain a color diary of colors used by the user. The color agent program recognizes and records data relating to the user's color preferences such that past color usage patterns are used, if desired, to automatically adjust or skew a color selection. In operation, if it is determined to apply the color agent (step S405), then flow advances to step S406 in which the color agent program determines color skew factors which are to be used in the scheme builder and colorizer in conjunction with the color impact objectives color scheme and the coloring of documents. As noted, these skew factors are only applied when the color agent's participation, or input, is requested by the user. As shown in the upper left-hand portion of default-palette window 31, icon 55 indicates whether the color agent has been activated in order to enhance the color work. In step S407, the color scheme resulting from the user's color scheme selections (and, possibly, the color agent) is displayed in portion B of default-palette window 31. In an alternative embodiment of the present invention, in step S407, the colors generated from the user's color objectives and attribute selections generates the same types of colors, however, instead of displaying a single color palette of these colors, plural palettes such as six palettes of various combinations of the dominant, coexisting, supporting, and highlight colors are generated and displayed. In yet a further variation of step S407, instead of displaying plural color palettes, the user can select an option to display a page of a document in multiple variously colorized thumbnail reproductions, such as six thumbnail reproductions, using the same color combinations that would have been displayed in the above-mentioned color palettes. In the next step, the user selects one of the color palettes and the flow proceeds to step S408 at which point the process is the same as in the preferred embodiment. In step S408, the user can determine whether to manually adjust any of the colors, i.e., dominant, coexisting, supporting, highlight, or data. In the case that it is desired to manually adjust the colors in the color scheme, the user can select the color to be modified in the color scheme palette or data color palette (window 35a) by double clicking on the color to be modified. When the color is selected, color tuner window 36 is displayed as shown in Figure 8. Figure 8 is an example of color tuner window 36, which includes color tuner 71. Color tuner 71 allows the user to modify original colors by adding selected amounts of other hues, i.e., more red, more blue, or more green. The original color can also be modified by adding or subtracting amounts of color intensity, blackness, whiteness, or shifting color warmth. As shown in Figure 8, the bar slider in the upper left-hand corner allows the user to set increments of changes which simultaneously change the color based on the previously-described color tuner selections. The two color boxes next to the bar slider show the original color as it is unchanged; the other box shows the color at its current level of change. Changes are immediately reflected as they occur in the color as it appears in the color scheme palette and colorized pages. The changes are finally set when a new color is selected from the color scheme palette. If desired, a user can iteratively build new palettes of colors by beginning again in step S401, changing some of the color impact objectives and attribute selections and rebuilding the palette by selecting button reference 51 "Build scheme" in window 31. Alternatively, by keeping the same color objectives and attribute settings, the user can iteratively build new palettes of colors just by selecting button reference 51 "Build scheme" in window 31. While doing this, a user can maintain any desired major colors, and their subordinate supporting colors, by "locking" the colors to be maintained, as shown in reference 54 of window 31, and changing those sets of colors that are not locked together using the "Build scheme" button. In addition, the user can link (or chain) a major color and its subordinate supporting colors by using reference 53 of section B in window 31, so that when any one of the linked colors is modified in a color tuner, the others will also change in such a way as to maintain, for example, the original triadic color relationship between them. For example, if the user links a set of colors that all have a greenish hue and then changes one of them to a reddish hue, all of the colors that are linked with the changed color will automatically change in a similar way to a reddish hue. The linked, or chained, colors always maintain their original color appearance relationships to each other. Two colors that differed perceptually by delta X saturation in the green hue would still differ perceptually by delta X saturation after being shifted towards the red hue. Once the color scheme has been generated and adjusted to the user's personal preference (step S409), it is possible to save the generated color scheme to a file stored on disk 11 for future use (step S410). The color scheme can either be saved as a set of colors in a color palette file ready to be used by other computer application programs, or it can be saved as the utility settings that were used to create it. Saving the color scheme as a utility setting means that the scheme can be used and modified again in the utility but that it can not be used by other computer application programs. At this point the user may also print the generated color scheme to be used as a hard copy reference for latter work. Figure 9 is a flow diagram describing the method for colorizing pages of a document. In step S901, the user selects and retrieves a document stored in disk 11 and loads the document into main memory 30. CPU 20 retrieves the document from main memory 30, colors it with the currently defined color palette, and displays the first page of the document on display 27. In step S902, the document is colorized using the selected color scheme. In step S903, a user is permitted to allow the color agent to automatically adjust (or skew) the color of one or more selected document pages. If the color agent is selected, the color agent will colorize the selected pages based on previous color scheme selections of the user (step S904). More particularly, as described above, the color agent varies colorization of the displayed page by adding skew factors that are based on the user's personal preferences and current color working trends, as monitored and stored by the color agent. As a specific example, as the user works with color on his computer, the color agent remains active in the background as a TSR program so as to maintain a diary of color usage and color preferences. In window 37 of Figure 10, toggleable icon 78 indicates to the user whether the color agent is "in" (or active). In step S905, a page of the document is reproduced a plurality of times in thumbnail sketches which are smaller abstracts of the original page. Each thumbnail abstract is automatically and variably colorized in combinations of colors from the generated color scheme. Step S905 will be explained below in greater detail with respect to Figure 10. Figure 10 illustrates colorizer window display 37. Colorizer window 37 shows each thumbnail abstract variably colored in varied combinations of the generated color scheme. As shown in the bottom left-hand corner of colorizer window 37, page menu 80 indicates the number of pages in the document and the present page displayed in the thumbnail abstracts. By using the pointing device, the user selects a desired thumbnail abstract by placing the cursor on the thumbnail sketch and depressing the pointing device on the desired thumbnail abstract in step S905. Upon selecting the desired thumbnail sketch, colorized document 90 appears in page-tuner window 39, as discussed below in greater detail with respect to Figure 11. In step S906, a selected thumbnail abstract is expanded in colorized document page 90, as shown in Figure 11. Page-tuner window 39 permits the user to manipulate and change the coloring of document elements (step S907). Thus, in step S908, the user can select any of the tools located in tool palette 91 to modify colors in colorized document 90. For example, eyedropper 92 can be used to select a color from the color scheme palette in the default-palette window or from the colored elements in the document page shown in the page-tuner window. Smudge tool 93 can be used to color a page element with a blend between two selected colors or bucket tool 94 can be used to color an element with a solid color. At any time while the user is working with the colorizer, the colors may be adjusted or modified in the default-palette window by using the chain icon and the color tuner. Those changes are automatically reflected in the corresponding colors in the colorizer pages. Of course, if the user is not satisfied with any of the colors, either before adjusting the color scheme or even after, the user may build an entirely new color scheme using the default-palette window's "Build scheme" button and lock icons, as discussed previously. To assist the user in manually adjusting colors, it is possible for CPU 20 to use pre-defined style sheets or to use document block identification and selection techniques such as those described in commonly assigned application Serial No. 873,012, filed April 24, 1992, "Method And Apparatus For Character Recognition", so as to automatically identify various parts, or blocks, in a document, such as titles, headings, captions, text, etc. It is then possible for the user to select various features of a document, such as headings, and to colorize the headings only, for example, in orange. Alternatively, it is possible to provide a further degree of user settable automation for coloring documents by saving a file of the color assignments that are made to low-level global elements, like setting all of the 24 point Helvetica characters in a document to red. Thereafter, the saved color scheme can be applied by the colorizer to another document file to, for example, automatically color all of the 24 point Helvetica characters in a document to red. In order to facilitate tuning a colorized page, the user is provided with different views of the document. Figures 11, 12, 13, and 14 illustrate the various page-tuner window views of the first page in the document. Figure 11 is a view of the colorized page. Figure 12 is a view of the document before the document image was colorized. This view is used as a reference to see a detailed view of the template elements. Figure 13 is a view of the original document, with elements shown as outlined shapes. This view allows the user to review colorized objects in the document. Figure 14 is a view of the colorized object outlines of Figure 13 superimposed on top of the image of the original page from the application in Figure 12. All color work is done in the Figure 11 view, the Figure 12 view is for reference, and the Figures 13 and 14 views are provided for identifying, manipulating, and selecting the page elements to be colored. Once the user is satisfied with the colorization of this document page, the remaining document pages can be colored, one by one, by selecting another page from page menu 80, at the bottom of colorizer window 37, and repeating steps S902 through S907, in accordance with user selection at step S909. For example, in Figure 15, page 2 of the document has been selected. Second page 100 includes data object 101, which is a pie chart. Data object 101 is colorized in accordance with the data colors defined in data-color-attribute window 34. If no pages remain in the document or no further pages are to be colorized in the document, then flow proceeds to step S910. As shown in Figure 16, the colorized document is saved by opening save-color-document window 46. While saving the pages in the document that have not been explicitly colorized, the user can request that the remaining pages in the document be automatically colorized by the program using an operator-settable default colorization option 110. The default colorization is picked from save-color-document window 46 as one of the thumbnail locations that had appeared in colorizer window 37. In a similar fashion, the colorized document could be printed directly from the colorizer using print document window 47 shown in Figure 17. In which case, the print document window 47 would be used instead of the save document window 46. The description of the selection of each window is only an example of how to select and to colorize a document. Since the color scheme selection/colorizer program operates in a windowing environment, any window may be activated or deactivated as a user desires. For example, Figure 18 illustrates the overlaying of windows wherein the window in the foreground in the display is operational. Appendix 1.1 A FIRST METHOD FOR SELECTING A COLOR SCHEME For each color impact objective, i.e., Happy, Angry, Romantic and Forceful, there will be defined three curves: Hue, Saturation and Brightness (HSB). Each of these curves is defined by a series of distinct points: For hue: n number of probability of relevance values can range from some minimum to some maximum value, for example, 0 to 1, 0 to 10, 0 to 100. For saturation: n number of saturation values will range from some minimum to some maximum value, for example, 0 to 1, 0 to 10, 0 to 100. For brightness: n number of brightness values will range from some minimum to some maximum value, for example: 0 to 1, 0 to 10, 0 to 100. For each color impact objective, there exists a 3 x n table. A first index specifies the type of value: 1 = probability of relevance values, 2 = Saturation values and 3 = brightness values. A second index specifies the hue angle that is associated with the relevance, saturation and brightness values stored in those three locations. The second index ranges from 0 to n in increments of x degrees. For example, n = 0 to 359, x=1, there exists a 3X360 element array with values for every 1 degree of hue, or n = 0 to 79, x=4.5, there exists a 3X80 element array with values for every 4.5 degrees of hue. Optimally, there should be a value for every whole degree in the hue range, so n will be 360: 0 to 359, in increments of 1 degree. Alternatively, the 3 x n table could be expanded to a 4 x n table by HSB values and relevance values. The first index of the 4 x n table specifies the type of value: 1 = hue values, 2 = probability of relevance values, 3 = saturation values and 4 - brightness values. Each color impact objective category, i.e., Emotion, Style, Message, may have a single weight value to be used in calculating composite saturation and brightness curves and, in addition, the weighting may be used to calculate composite hue. It may also be desirable to provide weighting for not only the objective categories, but also the individual objectives in order to further define desired colors. To Calculate Appropriate Colors With Optional Weighting: 1) At each hue angle, add the hue relevance values from all of the objective curves selected. 2) Obtain the average by dividing. 3) Find the Maximum solution relevance value. 4) A "standard deviation" value is applied to the solution hue curve. The standard deviation is an interval which can be used to locate hue picks along the solution hue curve. For example, using the standard deviation, start at the maximum value from step 3 and move along the hue curve taking values at each standard deviation. This standard deviation could be determined either by statistical analysis of the solution hues curve, or could be hard coded, i.e., some predetermined number of hue degrees, for example, the average number of degrees needed to perceive a color difference. As an alternative to this, maximum relevance values can be picked directly from the actual array of solution relevance values. 5) Using the hues picked in step 4, each hue is sorted into an order of their probability of relevance value. 6) Depending on the requested palette size and the user's settings for the desired relationship between the colors (harmonious, dissonant, etc.), the dominant and coexisting colors from the sorted list are extracted. These colors will be referred to as the major colors, i.e., major colors = dominant + coexistent. For the major colors, colors are selected which have the highest possible probability of relevance values. In view of this, the selection is limited to the part of the list which has the greatest relevance values. The limit for choosing relevance values may be preset to a value like 50% or higher, but in order to ensure that there are enough colors to choose from, it may be desirable to calculate a limit based on the list's distribution.The first color in the sorted list, which has the highest relevance value, is selected to be the dominant color. Using the artist's color wheel theory of color relationships, find the next color in the list that fulfills the relationship rule set by the user, and so on, until all the needed colors are chosen.The artist's color wheel theory is the basic technique that artists use to organize color mixing and managing of color relationships. The color wheel is composed of the three pigment primaries: red, yellow and blue organized in an equilateral triangular relationship. A circle is formed around these colors composed of the mixture of two adjoining colors, i.e., between red and yellow we have continuous shades of red to orange to yellow. Any two colors that are opposite each other on this wheel are conflicting, a composition of the two will be dissonant, these are called complementary colors. Likewise, a triad of colors taken at equal distances around the wheel (120° apart) will tend to be harmonious and will go well together.For example, using the color wheel theory to select 5 colors in a harmonious relationship assuming the dominant color is hue angle 0° in the stored list, the remaining four colors are selected using equal triad around the color wheel. Locate 1 or 2 colors "close to", i.e., within a small number of standard deviations to hue angle 120° and 1 or 2 colors around hue angle 240°, and/or possibly one other color around hue angle 0° to make the 5 major colors in this palette.The list is traversed until the first hue with an acceptable high relevance value is located which has a hue angle "close to" 0°, 120° or 240°, for example, hue angle 244°. Continue locating the next hue that is "close to" 0°, 120° or 240°, for example, hue 352°. Now no further colors are needed around hue angle 0° so the search can be limited to find only colors around 120° and 240°. If the only colors remaining are around 120° and 240° which have a very low relevance to the objectives, then other colors must be selected. One approach would be to move the triad targets closer to the first color picked, the dominant color, and search the'list again. Therefore, beginning at the top of the list, now locate colors close to, for example, hue angles 105° and 255°. This approach is repeated until 5 hues have been selected.Note 1: Since the target color relationship is harmonious, avoid looking for and picking colors that are close to being opposite on the color wheel to each other, i.e., colors having a dissonant relationship.Note 2: Since HSB (Hue, Saturation and Brightness) space is being used, the actual angles used (0°, 120° and 240°) have to be adjusted to shift the actual positioning of hues in HSB to something closer to the artist's pigment-based color wheel.Similar schemes can be developed for the other color relationships, dissonant colors, no relationship, etc. 7) Now for each of the major color hues selected in step 6, add up the weighted saturation values from the appropriate objective curves/tables: 8) Obtain the weighted average by dividing: 9) Repeat steps 7 and 8 for the brightness values. As an alternative to steps 7, 8 and 9 the values for saturation and brightness can be taken directly from a single objective curve/table, the one that is deemed to be the most relevant, or has the highest weight. 10) The hue, saturation and brightness are now defined for the palettes' dominant and coexisting colors. 11) To calculate the supporting colors, select each major color (dominant and coexisting) in turn and create n number of supporting colors by starting with that major color and varying the saturation, brightness and perhaps even very slightly the hue. Randomly choose a saturation factor, a brightness factor and a hue factor and multiply them to the major colors HSB components to get a supporting color; doing this for each supporting color to be created. The supporting colors should differ perceptually from each other by saturation and/or brightness but maintain close proximity to the major colors hue. Generally speaking, in HSB color coordinate space, the supporting colors should be less saturated and darker than their major color. Another approach could be to assign hard-coded factors for saturation, brightness and hue shifts that are applied to the major color for each level of supporting color to be calculated: Appendix 1.2 A SECOND METHOD FOR SELECTING A COLOR SCHEME Like the first method, for each color impact objective there is a 3 x n table which divides the hue angle range of 0° to 360° into "n" groups, such as 36 groups of 10° each. For each of the n groups in the 3 x n table, the 3 entries are: 1 = relevance, 2 = saturation value, and 3 = brightness value. To Calculate Appropriate Colors: 1) At each hue angle, and for each category for which an objective has been selected, choose the color (hue, saturation, and value) that has the largest relevance; record this color as the solution color along with the relevance itself. That is: 2) Find the Maximum solution relevance value. 3) A "standard deviation" value is applied to the solution hue curve. The standard deviation is an interval which can be used to locate hue picks along the solution hue curve. For example, using the standard deviation, start at the maximum value from step 2 and move along the hue curve taking values at each standard deviation. This standard deviation could be determined either by statistical analysis of the solution hues curve, or could be hard coded, i.e., some predetermined number of hue degrees, for example, the average number of degrees needed to perceive a color difference. As an alternative to this, maximum relevance values can be picked directly from the actual array of solution relevance values. 4) Using the hues picked in step 3, each hue is sorted into an order of their probability of relevance value. 5) Depending on the requested palette size and the user's settings for the desired relationship between the colors (harmonious, dissonant, etc.), the dominant and coexisting colors from the sorted list are extracted. These colors will be referred to as the major colors, i.e., major colors = dominant + coexistent. For the major colors, colors are selected which have the highest possible probability of relevance values. In view of this, the selection is limited to the part of the list which has the greatest relevance values. The limit for choosing relevance values may be preset to a value like 50% or higher, but in order to ensure that there are enough colors to choose from, it may be desirable to calculate a limit based on the list's distribution.The first color in the sorted list, which has the highest relevance value, is selected to be the dominant color. Using the artist's color wheel theory of color relationships, find the next color in the list that fulfills the relationship rule set by the user, and so on, until all the needed colors are chosen.The artist's color wheel theory is the basic technique that artists use to organize color mixing and managing of color relationships. The color wheel is composed of the three pigment primaries: red, yellow and blue organized in an equilateral triangular relationship. A circle is formed around these colors composed of the mixture of two adjoining colors, i.e., between red and yellow we have continuous shades of red to orange to yellow. Any two colors that are opposite each other on this wheel are conflicting, a composition of the two will be dissonant, these are called complementary colors. Likewise, a triad of colors taken at equal distances around the wheel (120° apart) will tend to be harmonious and will go well together. For example, using the color wheel theory to select 5 colors in a harmonious relationship assuming the dominant color is hue angle 0° in the stored list, the remaining four colors are selected using equal triad around the color wheel. Locate 1 or 2 colors "close to", i.e., within a small number of standard deviations to hue angle 120° and 1 or 2 colors around hue angle 240°, and/or possibly one other color around hue angle 0° to make the 5 major colors in this palette.The list is traversed until the first hue with an acceptable high relevance value is located which has a hue angle "close to" 0°, 120° or 240°, for example, hue angle 244°. Continue locating the next hue that is "close to" 0°, 120° or 240°, for example, hue 352°. Now no further colors are needed around hue angle 0° so the search can be limited to find only colors around 120° and 240°. If the only colors remaining are around 120° and 240° which have a very low relevance to the objectives, then other colors must be selected. One approach would be to move the triad targets closer to the first color picked, the dominant color, and search the list again. Therefore, beginning at the top of the list, now locate colors close to, for example, hue angles 105° and 255°. This approach is repeated until 5 hues have been selected.Note 1: Since the target color relationship is harmonious, avoid looking for and picking colors that are close to being opposite on the color wheel to each other, i.e., colors having a dissonant relationship.Note 2: Since HSB (Hue, Saturation and Brightness) space is being used, the actual angles used (0°, 120° and 240°) have to be adjusted to shift the actual positioning of hues in HSB to something closer to the artist's pigment-based color wheel.Similar schemes can be developed for the other color relationships, dissonant colors, no relationship, etc. 6) Now for each of the major color hues selected in step (5), use the weighted saturation values from step (1). 7) Repeat step (6) for the brightness values. In this manner, the values for saturation and brightness are taken from the saturation and brightness tables in correspondence to the selected hue angle. 8) The hue, saturation and brightness are now defined for the palettes' dominant and coexisting colors. 9) To calculate the supporting colors, select each major color (dominant and coexisting) in turn and create n number of supporting colors by starting with that major color and varying the saturation, brightness and perhaps even very slightly the hue. Randomly choose a saturation factor, a brightness factor and a hue factor and multiply them to the major colors HSB components to get a supporting color; doing this for each supporting color to be created. The supporting colors should differ perceptually from each other by saturation and/or brightness but maintain close proximity to the major colors hue. Generally speaking, in HSB color coordinate space, the supporting colors should be less saturated and darker than their major color. Another approach could be to assign hard-coded factors for saturation, brightness and hue shifts that are applied to the major color for each level of supporting color to be calculated: Appendix 1.3 METHOD FOR SELECTING HIGHLIGHT AND DATA COLORS HIGHLIGHT COLORS Using the Hue, Saturation and Brightness of the dominant color. The desired highlight color is selected at 180° hue from the dominant color: Hcolor.Hue = (Dcolor.Hue + 180) MOD 360; The desired saturation for the highlight color is set to: Hcolor.Sat = Dcolor.Sat + (100 - Dcolor.Sat)/2; The desired brightness for the highlight color is set to 100%: Hcolor.Bri = 100; If more highlight colors are desired, then two colors are selected at +-90° from the first highlight color. So, if Hcolorl is the first highlight color calculated above: DATA COLORS METHOD 1: Divide the color hue space into n + 1 segments where n is the number of desired data colors: interval = 360/(numDatacolors + 1); Using the Hue, Saturation and Brightness of the palette dominant color, the saturation and brightness for the data colors is set to (Dcolor is the dominant color): To calculate n data colors (Dcolor is the dominant color): METHOD 2: Use perceptual difference intervals between data color hues. Using the Hue, Saturation and Brightness of the dominant color. Where Dcolor is the dominant color: The saturation and brightness for the data colors is set to: To calculate n data colors;

Claims: A method of selecting colors based on a user's selection of some color impact objectives from among plural such color impact objectives which specify how colors affect those who view the colors, the method comprising the steps of: storing a relevance relation for each color impact objective, said relevance relation for each color impact objective specifying both a color for each of plural hues of colors and a relevance value for each of said plural hues of colors and a relevance value for each of said plural hues of colors indicating a degree of relevance of the corresponding color to said color impact objective; determining relevance relations corresponding to the color impact objectives selected by the user; combining the determined relevance relations to provide a maximum relevance value for each of said plural hues of colors and the colors corresponding to each said maximum relevance value for each hue; identifying an overall maximum relevance value for all of said plural hues of colors from the combination; and selecting the color which corresponds to said overall maximum relevance value as a visually dominant color. A method according to claim 1, where each relevance relation is comprised by a table which stores relevance values as a function of different hue angle, and where said dominant color has a hue angle which corresponds to said overall maximum relevance value. A method according to claim 1, wherein each relevance relation is comprised by a table which stores relevance values as a function of different hue angles and which stores a saturation and a brightness value for each different hue angle, and wherein said dominant color selected in said selecting step has a hue angle and a saturation and brightness which corresponds to said overall maximum relevance value. A method according to any preceding claim, further comprising the step of selecting a second color in correspondence to a next succeeding overall maximum relevance value in the combination. A method according to any preceding claim, further comprising the steps of: selecting relevance values from the combination according to a predetermined rule; and selecting harmonious coexisting colors, based on the triadic color variation of said dominant color, from the colors corresponding to the selected relevance values. A method according to any preceding claim, further comprising the step of constraining said dominant color based on physical color attributes specified by the user. A method according to any preceding claim, wherein said combining step comprises adding the relevance values for each respective hue for all of the determined relations. A method according to any one of claims 1 to 6, wherein said combining step comprises choosing the largest relevance value for each hue from all of the determined relevance relations. An apparatus for selecting colors based on a user's selection of some color impact objectives from among plural color impact objectives which specify how colors affect those who view the colors; said apparatus comprising: storing means (11) for storing a relevance relation for each of said plural color impact objectives, said relevance relation for each color impact objective specifying both a color for each of plural hues of colors and a relevance value for each of said plural hues of colors and a relevance value for each of said plural hues of colors indicating a degree of relevance of the corresponding color to said color impact objective; designation means (28,29) for the user selection of at least some of said plural color impact objectives; determining means (20) for determining relevance relations corresponding to the color impact objectives designed by said designating means; combining means (20) for combining the relevance relations determined by said determining means to provide a maximum relevance value for each of said plural hues of colors and the colors corresponding to each said maximum relevance value for each hue; identifying means (20) for identifying an overall maximum relevance value for all of said plural hues of colors from said combination created by said combining means; and selecting means (20) for selecting the color as a visually dominant color which corresponds to said overall maximum relevance value identified by said identifying means. An apparatus according to claim 9, wherein said storing means (11) is adapted to store each relevance relation as a table which stores relevance values as a function of different hue angles, and wherein said dominant color selected by said selecting means has a hue angle which corresponds to said overall maximum relevance value. An apparatus according to claim 9, wherein said storing means (11) is adapted to store each relevance relation as a table which stores relevance values as a function of different hue angles and which stores a saturation and a brightness value for each said different hue angle, and wherein said dominant color selected by said selecting means has a hue angle and saturation and brightness which corresponds to said overall maximum relevance value. An apparatus according to any one of claims 9 to 11, wherein said selecting means further includes means for selecting a second color in correspondence to a next succeeding overall maximum relevance value in said combination. An apparatus according to any one of claims 9 to 12, further comprising: second selecting means for selecting relevance values from said combinations according to a predetermined rule; and third selecting means for selecting harmonious coexisting colors, based on triadic color variation of said dominant color, from the colors corresponding to the selected relevance values selected by said second selecting means. An apparatus according to any one of claims 9 to 12, further comprising constraining means for constraining said dominant color selected by said selecting means based on physical color attributes specified by the user. An apparatus according to any one of claims 9 to 14, wherein said combining means is adapted to generate said combination by adding the relevance values for each respective hue for all of the determined relevance relations. An apparatus according to any one of claims 9 to 14, wherein said combining means is adapted to generate said combination by choosing the largest relevance value for each hue from all of the determined relevance relations. A computer program product comprising a computer readable storage medium storing a computer program for performing the method steps of any one of claims 1 to 8 when said program is run on a computer. A computer program for performing the method steps of any one of claims 1 to 7 when said program is run on a computer.

Inventors: HAIKIN JOHN S, HAIKIN, JOHN S.
Applicants: CANON INFORMATION SYST INC, CANON INFORMATION SYSTEMS, INC.
Application year: 1995
Main classification: G06T11
IPC codes: G06T11