Conventionally, discrete color palettes, typically comprised of 5-10 colors, for various color related task; for example, recoloring, color theme extraction, and machine learning of color aesthetics. While discrete color palettes may be suitable for some design domains, for example user interface design, they are a poor representation for much larger, continuous color distributions found in other applications of art and design, for example, illustration, graphic design, and photography. Advantageously, the present embodiments provide a color representation that can combine the simplicity of discrete color palettes with representational power and versatility.
As described herein, each color sail represents a patch of RGB space with, in some cases, four interactive controls: three controls where each is a color to define the color interpolation space, and a fourth control that modifies the shape of the gradient. As described herein, this allows “bending” the color distribution by putting “wind” into the sail, approximating a variety of non-linear color blending behaviors. In addition, in some cases, a color sail can have a parameter for the level of discretization, making it possible to represent a range of color palettes from very coarse to visually continuous. In some embodiments, the system can automatically infer a small set of color sails for an image, and map each to a meaningful image region; allowing easy recoloring of images by interacting with the sail controls. Unlike some approaches that are typically limited to artwork created with custom palette interfaces, the present embodiments can work with almost any design. While the present embodiments are directed to RGB space, it is contemplated that the embodiments disclosed herein can use any applicable color space.