METHOD AND SYSTEMS FOR MANIPULATION OF IMAGES OF FLOOR COVERINGS OR OTHER FABRICS

Abstract: A digital library of fabric models is created, preferably including digitized full-color images (74) and having associated a digital representation of positions that are located within and which characterize the models (75). A user may navigate among the set of alternative models, and may modify the positions of the selected models to test out desired combinations of characteristics -- such as poms or yarn ends, for models of floor coverings (79) -- and view the results. The present invention also provides for substituting colors in digital images of photographic quality, while preserving their realism. The resulting designs can be stored and transmitted to a central facility that can either generate images of the samples, or can directly generate actual samples of the carpet.

Description: METHODS AND SYSTEMS FOR MANIPULATION OF IMAGES OF FLOOR COVERINGS OR OTHER FABRICS Field of the Invention The present invention relates in general to methods and systems for computer-aided design, and, in particular, to methods and systems for the imaging and design of floor coverings or other fabrics. Background of the Invention The selection or "sampling" of custom floor coverings and other fabrics has been attended by various inefficiencies that stem from the difficulty of visualizing new color configurations for those fabrics as they would really appear. Typically, sales representatives have been limited to the display and sale of only those models and color schemes they are able to carry along from site to site. Turning around a custom design sample, moreover, has been a time-consuming and expensive proposition. Before an accurate visualization ofthe sample is possible, it is necessary to select and specify a custom order, to transmit the order to a mill, to produce a corresponding sample at the mill by a labor-intensive process, and to await shipment ofthe sample. Even assuming a particular customer were able to visit a mill at which custom samples could be produced, the time and expense involved in experimenting with various color schemes and producing fabric and textile models would itself be prohibitive and could impose a limit on the range of options that a customer could explore. The variety of available models of floor coverings and other fabrics has proliferated as a result of improvements in fabrication technology, among other factors, which has increased the number of choices available to designers and other persons choosing custom carpet. This trend has further complicated the customer's decision process. Rather than persisting with the arduous process described above, it would be vastly preferable for a sales representative to be able to visit a customer without needing to bring along the full panoply of models and colors, and yet still enable the customer to accurately visualize the gamut of possible design choices. Still more helpful would be an ability to permit the customer to independently vary the treatment (e.g., the color) of components of images of a floor covering or other fabric essentially at will, to store one or more representations of these variations, and specifications of samples embodying particularly promising design specifications, to quickly generate a set of alternative designs based on different models and with different color schemes, and to be able to compare and contrast the alternatives as a method of winnowing the set of design options to one of manageable size. Once a set of design alternatives has been chosen, it would greatly assist vendors as well as the customer to be able, in comparatively short order and in a convenient fashion, to perform a side-by-side comparison ofthe design alternatives. No such capability has been available, however. Perhaps the most challenging obstacle to assisting in the design and selection of custom fabrics is presented by the sensitivity ofthe human eye (particularly the well-trained eyes of design professionals) to shortcomings in the predictive representations of custom articles. This sensitivity places a premium on the reality ofthe representation despite the variation of image parameters such as color. A system for representing and allowing the manipulation of high-resolution images therefore most preferably should provide an ability to manipulate parameters ofa photographic image, and to do so with convenience and convincing results. Such a system should be able, for example, to modify the color and structure of components in a photographic image of a floor covering or other fabric, and, particularly, to do so in the vicinity of shadows or other factors that may tend to undermine the realism of the image when a color transformation has been requested. To date, however, capabilities of this sort have not been available. Summary of the Invention The present invention solves the foregoing problems by providing methods and systems for representing floor coverings or other fabrics or textiles of various models, and permitting a user to vary characteristics of subsets or portions of images ofthe models to visualize models that incoφorate the selected variation(s). The present invention also provides a technique for converting selected fabric design parameters into a format that can be used to generate representations of even higher resolution within a short turn around time. Still further, the present invention provides a method and system whereby the images that are manipulated are of photographic quality, and the manipulation of colors can be performed while preserving the realism of the image even in the presence of shadows or other influences that may tend to lead to unrealistic-looking results. One embodiment of a method according to the present invention, for example, comprises a method for computer-aided manipulation of characteristics of an image ofa fabric, such as a floor covering. The method is implemented on a computer coupled to a display means and a user input means. The imaged fabric has at least one "position" comprising a subset ofthe fabric that is to be given substantially the same treatment (such as the same color yam end or pom). At least one image ofa fabric, and preferably a library of such images, has been stored in a memory in a computer readable and manipulable format. Also stored in a computer readable and manipulable format, and in association with each of the fabric images, are data defining the one or more positions ofthe fabric. Furthermore, at least one treatment defined by at least one characteristic (e.g., yarn end or pom color) has been stored in a memory in a computer readable and manipulable format. A selected image of a fabric (chosen from the at least one stored image) is displayed. A position selected from among the at least one positions ofthe fabric is then identified, and a selected treatment from among the at least one available treatments is also identified. The selected position ofthe selected image is then modified to display the selected treatment for that position, and the image, including the modified position, is then displayed. A system or apparatus for implementing the foregoing method is also disclosed. An embodiment of another aspect ofthe present invention involves selecting at least one color in a color photographic image of a floor covering or other fabric, for example, and replacing that source color with a target color. Prior to implementation ofthe method, the RGB and YIQ color model values (described in the Detailed Description Section of this document) for the source and target colors have been stored in a data storage device. In addition, the color photographic image, including the subset ofthe image having the source color, has been digitized to produce a full color digital image represented according to the RGB color model and the digital image is stored in a data storage device (preferably among a library of such images). The RGB values for the source color and the target color are transformed from the RBG color model to the YIQ color model. An adjusted Y value is computed based on the Y values for the source and target colors. Then a replacement YIQ representation is created using the adjusted Y value and the I and Q values ofthe target color. The resulting modified YIQ representation ofthe target color (including the I and Q values ofthe target and the adjusted Y value) is then transformed back into the RGB color model. The resulting values yield a display in which the source color has been replaced by the target color, and in which the luminance ofthe result has been adjusted to maintain a realistic look. Accordingly, it is an object ofthe present invention to provide methods and systems for permitting a person, with the aid ofa computer, to visualize a wide variety of fabric or textile designs, as well as changes in desired characteristics of such fabrics or textiles. It is another object of the present invention to provide methods and systems for providing realistic representations of fabrics and textiles, such as carpets, such that component characteristics ofthe represented fabric or textile can be modified or manipulated by a designer or other user with the aid ofa computer. It is yet another object ofthe present invention to provide methods and systems for allowing a user of a computer to modify visual characteristics of fabrics or textiles, such as the color of portions of a carpet by manipulating aspects of photographic images of such fabrics and textiles. It is a further object ofthe present invention to generate a set of alternative design selections for a fabric or textile caφet, that can be conveniently compared, and to provide a mechanism whereby a higher resolution representation can be provided in a short turn-around time to facilitate such comparison. It is still a further object ofthe present invention to provide a method and system for adjusting colors in photographic quality images of fabrics, textiles or other materials, while preserving the color realism of such images in the vicinity of shadows or other features that may tend to give the transformed color an unrealistic look. Brief Description of the Drawings Figure 1 is a schematic illustration of a portion ofa simplified, hypothetical fabric or textile having three positions. Figure 2 is a flowchart showing preliminary process steps associated with a method according to and embodying the present invention. Figure 3 is a high-level block diagram of an embodiment of methods according to and embodying the present invention. Figure 4 is a first portion ofa flowchart showing the start, main menu and browser portions ofthe embodiment ofthe present invention shown in the diagram of Figure 3. Figure 5 is a second portion ofa flowchart showing the project portion ofthe embodiment ofthe present invention shown in the diagram of Figure 3. Figure 6 is a third portion ofa flowchart showing the database index and search portion ofthe embodiment ofthe present invention shown in the block diagram of Figure 3. Figure 7 is a fourth portion ofa flowchart showing the pre-modification portion ofthe embodiment ofthe present invention shown in the block diagram of Figure 3. Figure 8 is a fifth portion ofa flowchart showing the modification portion ofthe embodiment ofthe present invention shown in the block diagram of Figure 3. Figure 9 is a sixth portion ofa flowchart showing the modification portion ofthe embodiment ofthe present invention shown in the block diagram of Figure 3. Figure 10 is a flowchart showing steps in a method of adjusting colors in a digitized image according to and embodying the present invention. Figure 1 1 is a seventh portion of a flowchart showing the post-modification portion of the embodiment shown in the block diagram of Figure 3. Detailed Description of the Invention The methods and system according to the present invention facilitate the selection of design parameters by persons involved in choosing custom fabrics and textiles, such as floor coverings, wall coverings, window treatments, or other fabrics. Specifically, the disclosed methods and systems permit a user to visualize modifications to the characteristics of components or portions ofa fabric or textile by selecting and manipulating high quality digital images of these materials to produce highly realistic photographic-quality renderings ofthe various generated options. These images can be stored and recalled for subsequent comparison, and may be used as the convenient and economical basis for generating still higher quality representations or samples of the candidate designs. The methods and system are generally applicable at least to cloths, textiles, fabrics or other materials, whether tufted, woven, knitted, or otherwise manufactured. In one embodiment, described herein. the methods and system according to the present invention facilitate the selection or design of custom caφet. Although described with reference to floor coverings such as caφeting, for which the described methods and systems are particularly effective, the principles of the present invention are not limited to use in connection with floor covering markets, but are applicable to fabrics more generally. The designs ofa caφet, wall-covering, or other fabric can be characterized by several parameters, but a particularly useful one for purposes ofthe present invention is captured by the notion "position." A position in a fabric can be thought of as a subset ofthe fabric, all of which is to be given a particular "treatment." Although treatment here is intended to mean any characteristic, color is particularly important and its manipulation is emphasized in the present invention. Thus, a given position in a fabric can be defined by all portions of that fabric having a particular color, whether or not those portions are contiguous. A fabric may have several positions, each characterized by its own pom or yam end having a particular color and/or construction. A "pom" is often used to refer to a small bundle of yam used for demonstration puφoses to show the structure and color of a given yam type. A "yam end" refers to the visible portion of the material occupying a particular position. Accordingly, a model, pattem or style ofa fabric, such as a floor covering, may be characterized at least by the number and arrangement ofthe positions it includes (regardless ofthe color or construction ofthe actual poms or yam ends that may fill those positions). In Figure 1, for example, a highly simplified rendering ofa sample ofa floor covering model 10 is shown in schematic form. This hypothetical floor covering model 10 includes three positions. The treatment (e.g., the pom or yam end) in each ofthe positions is shown in the legend below the figure. A first treatment 12 is symbolically depicted by vertical lines. second treatment 14 is symbolically depicted by horizontal lines, and a third treatment 16 is symbolically depicted by diagonal lines. The fabric sampling and design methods and processes according to the present invention begin with preliminary steps for generating a database of floor covering models which serve as the starting point for the sampling and design process. Since caφet design is constrained by the machine processes used in the mills to manufacture the actual caφet, the design and sampling methods and systems according to the present invention use existing models as a starting point. This approach is economical, because it constrains the possible design outcomes to structures that can be fabricated. If a designer were able to specify any design without constraint, it could well turn out that the result could not be fabricated according to known methods. With the approach taken by the present invention, this possibility is precluded. Moreover, the fact that the models originate with an existing repertoire of an existing mill implies that the production of actual samples, or full orders of caφet, can be produced economically and in short order. In addition, rather than confronting the user with a tabula rasa — a blank slate — the existence of a rich set of models provides some structure to the design and sampling process. The models provide a multiplicity of starting points, which may be of assistance to a customer in initiating the mental portion ofthe sampling and design process. That the number of existing altemative models is large keeps the design and sampling process from being unduly or unreasonably constrained. Between the large number of models, as well as the large number of yam ends or poms, d e size ofthe design space — that is, the number of possible combinations ~ can be very large. The methods and systems according to the present invention, however, permit a customer to negotiate that design space in such a manner as to quickly arrive at a set of desired alternatives, and with such realism that the customer can predict with a high degree of accuracy how the actual floor covering (or other type of fabric) will appear. As a precursor to creating or running the methods and system according to the present invention, a number of pre-application steps 70, shown in Figure 2, are performed in order to create a database of models that form the starting points and, in a sense, the templates, for the design process. First, an actual item, such as a sample of caφet representative of a particular model, is digitally scanned at 72 according to known methods to create a full color digital image at 74. Each caφet sample is most preferably one in which the colors ofthe poms or yam ends in the particular positions are preselected to be of high contrast with respect to one another, regardless of any aesthetic shortcomings ofthe combination. Choosing the colors in this manner tends to maximize the resolution ofthe boundaries between positions. The digitized image is then retrievably stored in a database according to known methods, and in association with a code identifying the model. The code is preferably one that is understood by the mill or mills that will be called upon to fulfill an order for a variation upon the model, or should at least be convertible to a form recognizable by the mill. Once the image has been retrievably stored in a memory, the positions ofthe model are isolated at step 75. The isolation and storing ofthe positions based on a full color digital image, as well as the remaining pre-application steps 70, can be done with conventional graphic design systems, such as (but not limited to) PHOTOSHOP®, by ADOBE SYSTEMS, INC.® This process creates a data structure that defines the positions with respect to the original image, by creating a bitmap, for example. Also at step 75, a true or representative color for that position is identified or established, which is necessary for comparatively characterizing shaded portions ofthe image when the color is modified. Once the positions have been isolated, a black and white (or luminance) image or overlay is created at step 76 for each ofthe positions. One (or more) file including the image, the black and white position overlays, and the model identifying information, is (are) then created and stored at step 78 for retrieval in association with the application. The pre-application steps 70 may be repeated as many times as necessary to create a library ofthe models that a particular mill or mills are capable of manufacturing. In a manner similar to the creation ofa library of models, a library of available poms or yam ends having a particular construction, is also created at step 79 by scanning actual samples of caφet to generate a digitized image showing the structure of caφet having the particular pom or yam end. Additionally at step 79, for each scanned image, a set of permissible colors are coded in association with an identifying name, as well as an indication ofthe "true" color specified in terms ofthe computer graphics code for that color (e.g., the RGB code, further described below in connection with Figure 10). The selection ofthe code for the "true" color, as with the scanning ofthe caφet models generally, can be done by a person using PHOTOSHOP® or other suitable system. As with the model position colors, a single true color value needs to be designated, since the presence of shadows and the like in a particular image creates a variety of perceived colors for a caφet of a particular hue. A block diagram illustrating the architecture ofa software application 20 embodying the methods and architecture ofthe system according to the present invention is shown in Figure 3. In the following description, the term "screen" may be used to denote a user interface, which can be of any sort, but which is preferably a graphical user interface (GUI). The application steps described below can be implemented using existing computer languages, such as the C++ programming language. The method and system according to the present invention is shown in procedural (flowchart) form. This, however, is not intended to indicate that the methods and system according to the invention are, or need to be, implemented using a procedural programming model, rather than an object-oriented model. Either of these, or any suitable altemative models, can be used. In the procedurally-oriented flowcharts shown in the Figures, the apparent ordering of various ofthe steps to enter or depart from different states associated with particular user interfaces does not reflect an ordering that a user needs to follow; rather, it shows, for clarity of illustration, a representative "path" through the system that a user may take. The user, however, may in general freely move between such states within the constraints shown in Figure 3. In addition, the invention is not limited to the states depicted, but involves the underlying functionality accessible to a user by entering those states. Those functions could be re¬ arranged to a certain extent to involve a greater or lesser number of such user interfaces and states without departing from the spirit and scope ofthe present invention. Following the start 22 ofthe application 20, the user is presented with a menu 24. From the main menu 24, the user may transition between a project screen 26, a database index and search screen 30, and a browser screen 36. The project screen, as further described below with reference to Figure 5, provides an interface for the user to identify and select among existing projects created during earlier sessions with the application. The database index and search screen 30. on the other hand, affords the user access to a data base for one or more mills or vendors of floor coverings (or other fabrics of interest), described at greater length below in connection with Figure 6. Via the browser screen 36, the user may, for a given project, view the models on the project working list in a slide-show format, described in greater detail below with reference to Figure 7. One can also access a specifications screen 38 for quickly obtaining a listing of information regarding a particular model. From each of the project screen 26, the database index and search screen 30 and the browser screen 36, the user can retum to the main menu 24. A user can also move directly from the database index and search screen 30 to the browser 36, or to a pre-modification screen 40, which can also be invoked from the browser screen. From the pre-modification screen 40, a user may sort and view images of sample designs, as might be done if samples were being examined, considered, or perhaps eliminated from consideration, on a table top. The pre-modification screen 40 is described in connection with Figure 8, below. A user can also invoke the modification screen 44 from either the database index and search screen 30 or the pre-modification screen 40. It is via the modification screen 44 that a user may design and/or manipulate images of model fabrics, such as floor covering models, and select and modify the treatment of positions of selected models. The functionality accessible to the user via this interface is described below with reference to Figures 9 and 10. A user interacting with the modification screen ofa system according to the described embodiment of the invention can move, for editing puφoses, back to the pre-modification screen 40, or can retum to the database index and search screen 30. In addition, the user can move to and from a post-modification screen 56 if she or he has. for example, arrived at a set of floor covering selections. Altematively, the user can move to a promo-photo screen 52, in which a user can view a photographic image of an actual caφet model in a real environment, or to a large sample screen 54, which allows the user to zoom out and view a larger area of the sample including many more pattem repetitions than are ordinarily visible. From the large sample screen 54, the user may proceed to the post-modification screen 56. In the post-modification screen 56, the user can decide which items on the working list are to be ordered in photographic form, and can then place those orders. The user can also organize the working list into one or more projects that can be re-invoked for further work or otherwise referred to at a later time. A user may retum to the pre-modification screen 40, in which the user can sort through the various items on the working list using a table top paradigm ~ as a customer and a sales representative might use a table top to display, compare, inspect and discuss various design options in a preliminary fashion. Then, the user may retum from the pre-modification screen 40 to the post-modification screen 56, and can bring a selected model or sample from the pre-modification screen 40 to the post- modification screen 56, where it can be added to a working list for a given project. From the post-modification screen 56 one can also move to the project screen 26, at which the user can browse through a list of existing options and select one to work with. Finally, as depicted in Figure 3, one may invoke an exit function 58 from the post- modification screen 56. Although this is the most logical point of departure from the application, and the clearest manner of illustrating the architecture ofthe application, the user can, of course, exit from other points in the application if necessary or desired via main menu 24. As seen in Figure 4, from the main menu 24, a user can select from among three areas or interfaces: project screen 26, database index and search 30 and browser 36, or can exit at 58. When interacting with the project screen 26, shown in Figure 5, the user can enter the application by choosing at step 262 to resume work on a previously begun project. The user can also, beginning at step 262 (which can be entered from the post-modification screen, discussed below), remove or delete a project (i.e., a text file including client information and specifications for samples generated in a given session) with which she or he has previously worked. If a previously worked on project is to be retrieved or deleted, the user is presented with a project list at step 264. The user may then either execute a selection ofa particular project at step 266, which retrieves from storage the files for previously designed samples, or, altematively, execute a deletion at step 268 ofthe files associated with an existing project. At step 270, the application may then return to the main menu, from which another interface can be selected. If a user had not previously generated a set of sample designs, or had decided to delete them at step 268. she or he can develop a working list of candidate models with which to begin the process. From the main menu 24, the user selects the database index and search screen 30. via which the user can begin by viewing a list of models on the monitor, at 302. The database index and search screen 30 preferably includes means for listing available styles of caφet organized by such indicia as style category, machine type and dye method. For each of these categories, the default display may be the first N instances (e.g., as organized alphabetically), or they can be any desired default set. If any ofthe displayed choices are of interest to the user, those choices can be selected, and the selections preferably indicated to the user, such as by being placed in a list. If the user wishes to change the selection set ofthe displayed list of models, that selection can be made at step 304, and an associated query is executed at step 306. Selection set, as used here, refers to the most basic categories that might be assigned to caφeting by a mill. For example, a first selection set might include the mill's running line, while a second selection set could include the mill's custom styles. The user may view the list corresponding to the selected set on the computer display means, at step 302. Again, and as many times as desired, the user can modify the selected set at step 304 by either adding additional models of interest or deleting them. During this process, the user has the option at step 308 of changing the selection style being viewed and thereby increasing the range of styles that can be worked with. The selection style is intended to refer to a class of models having a particular style category (e.g., pattem type), machine type (e.g., PCL, loop/loop, etc.), dye method (e.g., piece dye, yam dye, etc.), or other characteristic. If the user wishes to do so, then at step 310 a query is executed and the resultant list can be viewed on the computer display at step 302. The user can then decide at step 312 whether the viewed list includes one or more models of interest. In this case, the application moves to 314, at which one or more displayed models can be used to begin (or to add to, on subsequent iterations) a working list. The entries on the working list can be viewed on the monitor, as at step 316. If the user wishes, at step 318, to add one or more models to the working list, the process can retum to step 314; otherwise, the user may choose at step 320 to remove models from the working list. In this event, the user can execute a move (i.e., a remove) from the working list at step 322, viewing the working list on the monitor, at 316. If the user does not desire to remove one or more models from the working list, she or he may consider moving to a different screen with the working list. For instance, the user, having arrived at a working list, may decide to browse the working list by iterating through displays in the form of a slide show by moving at 326 to the browser screen 36. Or, the user may wish to manipulate or re-organize the members ofthe working list prior to modification of those members by moving, at step 328, to the pre-modification screen 40. If the user considers the working list to be in a suitable condition for beginning the design process, she or he can execute a change at step 330 to the modification screen 44. For each of these moves to different screens, the working list remains intact for access from the new screen. The browser screen 36 can be entered from the main menu 24, the database index and search screen 30 or the pre-modification screen 40. The paradigm for the browser screen 36 is that of a slide show, through which the user can browse at the items on the working list. As shown in Figure 7, each image can be sequentially viewed, at 362, on the monitor, with the ability at 364 to move back to a previously viewed image at 366, or to move forward to another image at step 368. When, during this process, an image ofa sample design of particular interest has been arrived at, the user may choose at 370 to view the current poms or yam ends, which are then retrieved from memory and displayed as an overlay on the screen image ofthe model being viewed. Each position may be shaded in a particular manner, and a legend may be displayed correlating that shading to the corresponding position. The user may also choose at step 374 to zoom into (376), or out of (378), the image, to get a more fine¬ grained, or a more global, view ofthe image. If the user wishes, she or he may choose at 380 to move to a specification screen 38 to view the specifications associated with the model depicted in that image and the yam ends or poms in the positions of that model. For example, but without limitation, the user can see the item code for the style corresponding to a selected model and a description ofthe style (or an identifier, such as a product name). In addition, the specification screen may reveal information about the machine gauge and/or type corresponding to the style, as well as the weight ofthe fabric (e.g., the tufted weight ofa caφet). The user may also learn about the dimensions within which the pattem ofthe style repeats, and a minimum yardage required for orders ofthe caφet. The user may also decide, at 382, to add the sample design being viewed, at step 384, to a list of sample designs to be viewed from the pre-modification screen 40 (the image ofthe sample design being viewable at 362). The user is otherwise free to move at 386 either to the pre-modification screen, or back to the main menu 24. The pre-modification screen 40 can be thought of as a kind of a stack or table top on which a sales representative might spread out a set of samples for the customer to consider. The table top is simulated by the screen on which the images can be brought up for viewing, at 402. As shown in Figure 8, a user may choose at 404 to "flip" through the various models in the working list to arrive at another sample (406) for viewing (402). The user can also choose at 408 to further winnow down the set of candidates by removing them at 410 from the working list, with an opportunity to view the sample to be removed from the list at 402. The user may also choose at 412 to alter the view of a sample, such as to view the sample in a full size mode, in which a larger swath ofthe sample can be visualized, at 414. The user can also call choose at 416 to call up the identity ofthe poms or yam ends for the positions of the current sample at 418. From the pre-modification screen 40, the user can move ahead to the modification screen 44 if she or he wishes to modify the treatment ofthe positions of any of the samples. The user can, altematively, retum to the browser screen 36 to review and reconsider the candidates in the working list, or can move to the post-modification screen 56, at which the working list of candidate samples can be compiled into one or more projects for storage and later recall. A user wishing to vary the treatment ofthe positions of a selected sample would move to the modification screen 44, flowchart steps for which are shown in Figure 9. The interface provided by screen modification screen 44 permits the user to view the selected sample image at 442 and to vary the views ofthe image. For instance, the user at 444 can choose to view a brief animated image in which each of the positions are individually highlighted, at 446. In one embodiment, as the positions are indicated, they are filled in (using conventional "clipping" methods available through software running on the APPLE MACINTOSH®, for example, or other suitable systems) with a particular color or pattem, and a corresponding window opens for indicating the number of the position and containing the same color or pattem, so that multiple positions can be highlighted simultaneously. The user may also choose at 448 to zoom into or out ofthe displayed image at 450 (using functionality similar to that used at steps 376 and 378 of the browser interface 36). If the user is interested in comparing a sample of a particular model of interest with a promotional (promo) photo of that model showing it installed in an actual setting, that option can be selected at 452 and executed at 454. Altematively, the user can select (as he or she could in the browser interface 36 and in the pre-modification interface 40) at step 456 to view at step 458 the yam ends or poms of the currently viewed sample. The user also has a number of options for varying the treatment ofthe positions of a selected model. The flowchart of Figure 9 indicates that the user, at 456, could decline to view the poms or ya ends in the positions ofthe sample currently being viewed; however, the choice to modify the treatment ofthe positions ofthe sample could just as easily have been shown as being initiated from any ofthe viewing options 444, 448, or 452, and these options are contemplated by and fall within the scope ofthe present invention. When the choice not to vary the views ofthe current sample has been made at 456 (or at 444, 448 or 452), the user may choose at 460 to modify or vary the treatments ofthe positions in the current sample. This process may be initiated by selecting at 462 a position to manipulate, and the application locates and retrieves the pre-stored data for the selected position at 464. The user may then at 466 select from among a displayed set of options a treatment (e.g., a ya end or pom of a particular color) to replace that of the currently selected position. This selection is executed by the application at 468. At 470, the user may select from among a set of variations for the selected style a particular yam end or pom, the selection executed by the application at 472. Then, in order to visualize the current sample having the newly selected yam end or pom in the selected position, the user can choose at 478 to substitute the new pom or yam end for the original one in the designated position ofthe model, executed at 480. The substitution ofthe selected (target) yam end or pom for the original (source) yam end or pom in the selected position, according to the present invention, involves a process, an embodiment of which is set forth at reference numeral 80 in Figure 10. The invention is not limited to the particular steps or ordering shown in Figure 10; rather, these can be varied or combined (for performance or other reasons, for example) in a manner consistent with the disclosed functionality without departing from the scope or spirit ofthe present invention. First, the file for the model corresponding to the sample will have been retrieved into memory at step 82 in order to display the image ofthe model on the screen. A position has been selected in the model at step 84 (corresponding to step 462 in Figure 9). The application then retrieves the black and white or luminance image overlay (generated at step 76 ofthe process set forth in Figure 2 and described in the accompanying text) corresponding to the selected position. This overlay image is displayed as an overlay on the sample image, highlighting the selected position for the user, in which position the newly chosen yam end or pom. step 88 (corresponding to step 478 of Figure 9), is to be added. According to the present invention, the characteristics of two different color models for raster graphics are employed to facilitate the transformation of color in a particular position. Raster graphic techniques based on television technology are conventional in most computer and video settings. In a raster graphics system, graphical primitives (such as characters, lines, and other features) are stored in a buffer in terms of their component "pixels." A "pixel" is a shortened form for "picture element" (also known as a "pel") and refers to the elements of a display from which the screen image is constructed. A raster is a set of horizontal raster lines, each line constituting a set of individual pixels. One raster line at a time, an image is scanned to the display by a video controller, painting the screen. According to convention, this process begins at the top and continues until the bottom line of the image is scanned. The content of a raster image is controlled by modulating the manner in which the scanning beam or beams illuminate each individual pixel. In black and white or luminance images, only one beam is used, and the desired screen luminance at a particular pixel is a direct function ofthe intensity ofthe beam when it points at that pixel. In color systems, three beams are used, one red, one green and the third blue, and the desired color at a particular pixel is determined by the intensities of these three color components. Several conventions or models assist in manipulating colors in a video or computer screen image. A color model generally represents a range or gamut of colors using a three dimensional (3D) coordinate system. Using this approach, virtually any color can be specified with high precision by referring to its position in the 3D space using the coordinates for each dimension. The colors can then be manipulated using mathematical techniques, such as the tools of linear algebra. For example, since any two 3D color models all represent the same phenomenon — colored light ~ the specification ofa color in one system can be transformed into any other model by linearly transforming a 3D vector from a source model to a 3D vector in a target model by conventional matrix multiplication. The possibility ofa 3D model is implied by the fact that most colors oflight can generally be created by combining three component light beams. This is probably easiest to understand for one model that happens to be of particular importance for the present invention. That model, known as the RGB (for red, green and blue), is used with color CRT (cathode ray tube) monitors in most computer graphics applications. The RGB model places black at the origin (0, 0, 0) ofa Cartesian coordinate system, and white at the (1, 1, 1) vertex on the unit cube, a point in RGB space farthest from the origin. Gray tones lie along a line connecting these two points. Blue is located at (0, 0, 1); red at (1, 0, 0) and green at (0, 1, 0); cyan is located at (0, 1, 1), magenta at (1, 0, 1), and yellow at (1, 1, 0). Another model of interest for the present invention is the YIQ color model. This model is employed in the broadcast of color television signals in the United States. YIQ is essentially a re-coding or linear transformation of RGB for transmission efficiency. YIQ- encoded signals may easily be converted into a black and white signal, so that the signals can be viewed on black and white televisions. This easy conversion is possible because the first ofthe YIQ dimensions, Y, refers not to yellow but to luminance. In black and white television systems, only the Y component ofa YIQ signal is displayed. The chromaticity of the signal is captured in the I and the Q components. Conveniently, a YIQ vector for a pixel can be computed from an RGB vector using the following relationship: - >] ( " 0.2989 0.5866 0.1144 " I I " " / = 05959 -0.2741 -0.3218 G Q 0.2113 -0.5227 0.3113 B A YIQ vector for a pixel can be transformed back into an RGB pixel vector by the following operation, in which the matrix is simply the inverse ofthe above transform matrix. In order to substitute one yam end or pom in a particular position for the yam end or pom currently in that position, the RGB vector for the "true" color ofthe pom or yam end currently residing in the selected position (i.e., the "source" image) is retrieved, at 90. Also, the RGB values for the treatment ofthe position (here, the tme target color ofthe desired yam end or pom) are retrieved at 92. The values ofthe tme source color and target RGB color vectors are then preferably scaled or normalized at 94 from a machine code (e.g., defined in the interval (0 £ S £ 255)) to a normalized value in the interval (0 £ S £ 1) in order to permit algebraic operations to be performed on the values, or for any other reasons that may be necessary or desirable depending upon the particularities ofthe application. The RGB vectors for the tme source color and for the target color are then transformed at step 96, using the first of the above-identified matrices, into a YIQ representation. Also it may be necessary to ensure that the ultimate RGB representation includes legitimate values (in the defined range for that model). In one embodiment ofthe present invention, Y and Q may thus be adjusted to fall respectively within the ranges: (-0.596 £ Y £ 0.596) and (-0.525 £ Q £ 0.525). Moreover, an adjustment may be performed to take into account the psychophysical phenomenon that the human eye perceives different hues as having different brightness (despite the possibility that they may have identical physical brightness). To accomplish these adjustments, the well-known technique of gamma curve manipulation (or gamma correction) is performed. According to known methods, the mapping from a source luminance to a desired target luminance can be represented by a polynomial function, namely a quadratic: Y=ax +bx+c whose coefficients are a function ofthe tme source and target luminance values. Specifically, if the desired target luminance is Y τ and the desired source luminance is Y s , then the coefficient b, for the first order term ofthe quadratic, is given by: b=(YrY s 2 V[Ys(l-Ys)] and a, the coefficient for the second order term ofthe quadratic is given by: a=l-b These coefficients are computed at step 98. Then, referring to step 100, the following steps are performed for all pixels in the selected position (which had been pre-stored as a black and white overlay). The RGB values for the pixel are retrieved at step 102. Then the Y value corresponding to the retrieved RGB values for the pixel is computed at step 104 using the first ofthe above-defined matrix operations. The Y value may then be adjusted at step 106 according to the above-defined gamma correction function (or other suitable function). Next, replacement YIQ values for the present pixel are selected: Y is set to the adjusted Y value and the I and Q values are set to those ofthe target color. Thus, the present pixel will be characterized by the chrominance of the target and a luminance adjusted as a function ofthe source and target luminances. Finally, at step 110, the resultant YIQ values are transformed back to the RGB space. They may then be re-scaled, also at 110, to lie in the original interval (e.g., (0 £ S £ 255)) and memory locations corresponding to the pixel may be written with these values to illuminate the pixel, at step 1 12, with the luminance-adjusted target color. The foregoing steps are repeated for all pixels in the selected position. Returning to Figure 9, the user can view the updated image at 482. If at 478 the user decided not to proceed to add the pom or yam end to the selected position, he or she can select at 462 the same or a different position to work with. The application partially fills in the selected pom or yam end and then stops to prompt the user at 484 whether, based on the partial view, she or he wishes to continue with the pom or yam end change. If the user so selects, the application at 486 completes filling in the position with the selected pom or yam end according to the method described above. The result may be viewed at 488. Altematively, the user could at 484 have elected not to continue with the change, but rather retum to step 462 and re-initiate the modification process. At 490, the application checks whether all positions have been changed. In a preferred embodiment, it is preferable in terms of developing a complete specification for the sample to require that all the positions be examined and changed (even if the "change" is not a genuine change, but rather retains the same pom or yam end); this ensures that the file containing the specifications for the sample contains complete data as to the content of all the positions. If at 490 it was not the case that all the positions had been changed, control would retum to step 462, at which the user could select a new position to work with. On the other hand, if all positions have been changed, the user may then choose at 492 to add the resulting sample to a working list that can be manipulated in the post-modification screen 56, executed at step 494. Whether or not the resulting sample is added to the working list, the user can then select whether to move to a new area ofthe application. A move can be made to retum to the pre-modification screen 40, to initiate a database index and search in screen 30 or to move ahead to the post-modification screen 56. In the post-modification screen 56, the user can leaf through the previously designed samples and organize the results ofthe foregoing session into a project file. At step 564 a sample may be chosen to work with, which is retrieved at 566 for display on the screen at 562. The user may repeat the foregoing steps as necessary until a desired sample is arrived at. The user may then, if she or he wishes, remove the particular viewed sample from the working set, the removal being executed at 570. At 576, the user may again choose to view the treatments, such as the yam ends or poms, in each position, which is executed by the application at step 578. The user may then at step 580 choose to add the sample to the current working list and associate it with a project name so that it can later be pulled up in the project screen 26. The sample design being viewed is then added to the current project list at step 588 (see Figure 5). When the user has developed sufficient interest in a particular sample design, she or he may decide at step 582 to place an order for one or more prints. The application then displays an order information input screen at 584, which permits the user to enter information regarding the transaction, such as: customer name, project name, pertinent information regarding the current project for that customer, name ofthe sales representative, a description ofthe customer's business, the customer's address, telephone and facsimile number, square yardage, where the caφet is planned to be installed, type of setting, type of caφet backing, etc. Following step 584, the application creates a file containing the order information, including the specification for the particular sample to be imaged, as well as information regarding the customer. The order can be transmitted at 585 by any means, such as (without limitation) electronically by modem, to a central facility at which a high resolution photograph image can be generated using techniques analogous to those described in connection with Figure 10. and utilizing PHOTOSHOP® or other suitable photograph manipulation tool. The user can then decide at step 586 whether to continue choosing models to work with, or to select a new area of the application, such as retuming to the pre-modification screen 40, or to the modification screen 44, or to the project screen 26. (In the project screen 26, at step 588 (Figure 5), the current project can be added to the project list.) If the user has finished placing orders of prints and/or defining a project to continue to work on or refer to at a later time, she or he may exit, at 58. Of course, the application can be exited at any point via main menu 24 but a single point of exit has been indicated that the location where it would be most logical following session. The methods according to the present invention, such as the embodiment described above, can be implemented using any conventional computer system having sufficient memory, processing power and graphics capability, including but not limited to electronic notebooks, or desktop personal computers equipped with a POWER PC® or PENTIUM® processor, and having a keyboard, color screen and a cursor positioning means. In addition, the methods according to the present invention have utility as articles of manufacture stored on any computer readable medium, such as floppy disk, hard disk, (optically readable) compact disk, tape, or in a read only or random access memory, without limitation.

Claims: What is claimed is: 1. A method for computer-aided manipulation of characteristics of an image of a fabric, wherein the fabric has at least one position, each position comprising a subset ofthe fabric that is to be given substantially the same treatment, and wherein at least one image of a fabric has been stored in a memory in a computer readable and manipulable format, and the one or more positions of that fabric have been isolated and their positions stored in a memory in a computer readable and manipulable format, and, further, wherein at least one treatment defined by at least one characteristic has been stored in a memory in a computer readable and manipulable format, the method being implemented on a computer coupled to a display means and a user input means, the method comprising the steps of: a. displaying on the display means a selected image of a fabric from among the at least one stored image; b. identifying a selected position from among the at least one position ofthe displayed fabric image; c. identifying a selected treatment from among the at least one treatment, the treatment defined by at least one characteristic; d. modifying the selected position of the selected image to include the characteristic of the selected treatment; and e. displaying the selected image in which the selected position has been modified to include the characteristic of the selected treatment. 2. The method of claim 1 , wherein the image displayed and manipulated in steps a-e is photographic. 3. The method of claim 1, wherein, in step b, the selected position is identified by a gray scale overlay. 4. The method of claim 1. wherein the at least one treatment comprises a type of yarn. 5. The method of claim 1. wherein the at least one characteristic ofthe selected treatment comprises a color. 6. The method of claim 1, wherein the fabric comprises a floor covering. 7. The method of claim 6, wherein the floor covering comprises caφet. 8. The method of claim 7, wherein the at least one treatment comprises a type of yam end. 9. The method of claim 8, wherein the at least one characteristic ofthe ya end comprises a color. 10. The method of claim 8, wherein a first of the at least one characteristic of the yam end comprises a color and a second characteristic ofthe yam end comprises a yam construction. 11. A method for computer-aided manipulation of characteristics within an image ofa fabric, wherein the fabric has at least one position, each position comprising a subset of the fabric that is to be given substantially the same treatment, and wherein at least one image of a fabric has been stored in a memory in a computer readable and manipulable format, and the one or more positions of that fabric have been isolated and their positions stored in a memory in a computer readable and manipulable format, and, further, wherein at least one treatment defined by at least one characteristic are stored in a memory in a computer readable and manipulable format, the method being implemented on a computer coupled to a display means and a user input means, the method comprising the steps of: a. reading a user selection of a fabric from among the set of examples for which images are stored in memory; b. displaying an image corresponding to the selected fabric; c. displaying an indication of positions ofthe fabric in the displayed image; d. reading a user selection ofa displayed position; e. modifying the displayed image to visually indicate the selected position; f. displaying at least one of the at least one stored treatments as an option for treatment of the selected position; and g. modifying the selected position ofthe selected image to display the characteristic ofthe selected treatment option. 12. The method of claim 1 1 , wherein, in step e, a gray scale overlay is incoφorated into the image to visually indicate the selected position. 13. The method of claim 11 , wherein the at least one treatment comprises a ya type. 14. The method of claim 1 1, wherein the at least one characteristic ofthe selected treatment comprises a color. 15. The method of claim 11 , wherein the fabric comprises caφet. 16. The method of claim 15, wherein the at least one treatment comprises a type of yam end. 17. The method of claim 16, wherein the at least one characteristic of the yam end comprises a color. 18. The method of claim 11 , wherein the images stored in memory and the image manipulated in steps b-g are digitized photographic images. 19. The method of claim 1 1 , further comprising the steps of : h. storing data indicative of the selection of treatment in a memory associated with data indicative ofthe selected fabric and of the selected position. 20. The method of claim 19. further comprising the steps of : i. reading a second user selection of a displayed position; j. modifying the displayed image to indicate the second selected position: k. displaying at least one option for treatment of the second selected position, the treatment option having a characteristic; and 1. modifying the second selected position ofthe selected image to display the characteristic ofthe selected treatment option. 21. The method of claim 11 , further comprising the steps of: h. storing information specifying the selected treatment option; i. transmitting the information stored in step (h) to a central facility; and j. at the central facility, generating an image based on the transmitted information. 22. A system for representing and modifying images of fabrics of at least one type, each fabric type being defined by at least one characteristic and having a characteristic set of positions, each position comprising one or more regions in the fabric having a common treatment, the modification ofthe images involving the modification of treatments for the positions, the modification of treatments being selectable from a set of treatments, each treatment having a characteristic, the system comprising: a. user input means; b. data storage means, in which the set of images of fabrics are stored according to type and the set of treatments are stored according to characteristic; c. a processor coupled to the user input means and the data storage means, the processor being programmed to: i) display a selected image of a fabric from among the at least one stored image; ii) identify a selected position from among the at least one position of the displayed fabric image; O 97/10569 PC17US96/14789 iii) identify a selected treatment from among the at least one treatment, the treatment defined by at least one characteristic; and iv) display the selected image in which the selected position has been modified to include the characteristic ofthe selected treatment. 23. A storage medium encoded with instmctions for enabling a computing device to perform a method for computer-aided manipulation of characteristics of an image ofa fabric, wherein the fabric has at least one position, each position comprising a subset ofthe fabric that is to be given substantially the same treatment, and wherein at least one image of a fabric has been stored in a memory in a computer readable and manipulable format, and the one or more positions of that fabric have been isolated and their positions stored in a memory in a computer readable and manipulable format, and, further, wherein at least one treatment defined by at least one characteristic has been stored in a memory in a computer readable and manipulable format, the method being implemented on a computer coupled to a display means and a user input means, the storage medium encoded with instmctions for performing the method comprising the steps of: a. displaying a selected image ofa fabric from among the at least one stored image; b. identifying a selected a position from among the at least one position ofthe displayed fabric image; c. identifying a selected treatment from among the at least one treatment, the treatment defined by at least one characteristic; d. modifying the selected position ofthe selected image to include the characteristic ofthe selected treatment; and e. displaying the selected image in which the selected position has been modified to include the characteristic of the selected treatment. 24. A method for adjusting at least one color in a color photographic image from a source color to a target color, the RGB and YIQ model values for the source and target colors being known and stored in a data storage device, a pre-selected representative RGB color value for the source color also being stored in a data storage device, the color photographic image, including the subset ofthe image having the source color, having been digitized to produce a full color digital image represented with the RGB color model and the digital image is stored in a data storage device, the method comprising the steps of: a. transforming the RGB values for the source color and the target color to the YIQ color model; b. converting the RGB values for the target color to the YIQ color model; c. substituting the I and Q values ofthe target color for the I and Q values ofthe source color, so that the resultant YIQ values include the luminance ofthe source color and the chrominance ofthe target color; d. transforming the resultant YIQ values including the luminance of the source color and the chrominance ofthe target color to the RGB color model; and e. displaying the RGB color model for the target color. 25. A method for adjusting at least one color in a color photographic image from a source color to a target color, the RGB and YIQ model values for the source and target colors being known and stored in a data storage device, a pre-selected representative RGB color value for the source color also being stored in a data storage device, the color photographic image, including the subset of the image having the source color, having been digitized to produce a full color digital image represented with the RGB color model and the digital image is stored in a data storage device, the method comprising the steps of: a. retrieving the RGB values for the tme source color from the data storage device; b. computing the Y component ofthe YIQ representation ofthe RGB value for the tme source color; c. retrieving the RGB values for the target color from the data storage device; d. computing the YIQ values for the target color from the retrieved RGB values; e. computing luminance adjustment coefficients as a function ofthe Y value of the tme source color and the Y value ofthe target color; and f. for all pixels of the image having the source color: O 97/10569 PC17US96/14789 i) retrieving the RGB values for the pixel; ii) computing the Y value corresponding to the retrieved RGB values for the pixel; iii) adjusting the Y value corresponding to the retrieved RGB value for the pixel as a function ofthe coefficients computed in step d; iv) substituting the I and Q values for the target color for the I and Q values for the pixel, so that the pixel is characterized by the chrominance ofthe target color and the adjusted luminance; and v) transforming the resultant YIQ values for the pixel to the RGB color model for display. 26. The method of claim 25, wherein the adjustment ofthe Y value in step f.iii., is performed according to the function: Y=ax 2 +bx+c where b^ r Y s 2 )/[Ys(l-Ys)] where a=l-b and where the Y value for the tme source color is Y s and the Y value for the target color is Y τ .

Inventors: THOMAS GLENN C, VAN VARK JAY, THOMAS, GLENN, C., VAN VARK, JAY
Applicants: BENTLY MILLS INC, BENTLY MILLS, INC.
Application year: 1996
Main classification: G06T11
IPC codes: D03C19, G06F17, G06T11, G06T17