The disclosure provides for a method of processing a color image. Color information for a given image may be received (810), including a first image pixel having a first color value, a second image pixel having a second color value, and a third image pixel having a third color value. For at least the second image pixel, a first color value and a third color value may be determined (820, 830) using a combination of modified color values of neighboring image pixels. The combination of modified color values may be based on interpolations of color values of the neighboring image pixels (510, 720) and derivative corrections according to differences in color values of neighboring image pixels (510, 720). The given image may be generated (840) with each image pixel in the given image having a first, second, and third color values, including at least the determined first color value and third color value of the second image pixel.