At block 904, the mapping module 122 determines a set of input colors in the input image. In some cases, all the colors in an image can be sampled, and in other cases, a subset of colors in an image can be sampled (for example, randomly selecting subsets of colors). As the histogram is normalized, it should not affect the outcome as long as there are enough samples.
At block 906, the representation module 120 generates a color sail having a color distribution determined by a set of parameters comprising a base color at each of the three vertices, a patchwork parameter, and in some cases, a focal point and a wind parameter.
At block 908, using a trained first neural network, the mapping module 122 determines a value for the plurality of parameters of the color sail that minimize an error metric between the input colors and the colors in a color distribution of the color sail.
At block 910, after the representation module 120 generates the color sail, the mapping module 122, for each pixel or group of pixels in the image, determines the discrete portion of the color sail with a color that is closest to that pixel or group of pixels.
At block 912, the user interface 106 receives a modification to any one or more of the parameters of the color sail from the user.
At block 914, the representation module 120 recolors each pixel (or group of pixels) in the image to the color value of the associated discrete section of the color sail.