1. A computer-implemented method, comprising: defining a color space comprising a plurality of color classes; selecting a plurality of sample images for each color class of the color space; associating each one of the sample images with a color descriptor of a plurality of color descriptors; obtaining an image; determining a closest fine color for each of at least a portion of pixels of the image, each fine color being associated with a color family; computing a fine color histogram and a family color histogram for the image; determining a color descriptor of the plurality of color descriptors based at least in part on a combination of the fine color histogram and the family color histogram for the image; comparing the color descriptor to each color descriptor associated with each one of the plurality of sample images for each color class to generate a plurality of color matching scores; identifying a determined number of highest scoring sample images having a color matching score above a threshold matching score; grouping each of the sample images of the determined number of highest scoring sample images into a class color cluster; summing the color matching scores for each of the sample images in each class color cluster; and assigning the image to at least one color class for at least one class color cluster having a color matching score sum above a threshold value.