1. A non-transitory computer readable medium storing a computer program which when executed by at least one processing unit matches colors of a first image to colors of a second image, the program comprising sets of instructions for: identifying a set of transforms for converting the first image to a device-independent color space; modifying the set of transforms to segment colors of the first image into a set of segmented colors; applying the modified set of transforms to pixel values of the first image in order to segment the pixels of the first image into the set of segmented colors; applying the modified set of transforms to pixel values of the second image in order to segment the pixels of the second image into the set of segmented colors; and matching each segmented color in the set of segmented colors in the first image to the segmented color in the second image.