1. A computer-implemented method of removing illumination variation from an image, the method comprising: selecting an image comprising color pixels with varying illumination; determining instances of a repeating pattern in the image; calculating illumination values for illuminated pixels at locations within instances of the repeating pattern, the calculation based on pixel intensities of non-illuminated pixels at corresponding locations in other instances of the repeating pattern; removing the illumination variation from the illuminated pixels based on the calculated illumination values to produce enhanced pixels; and propagating color from the non-illuminated pixels at the corresponding locations in other instances of the repeating pattern to the enhanced pixels.