1. A method of processing a two-dimensional image comprising an array of pixels, the pixels being composed of (i) a first set of pixels at each of which only a ground truth red color intensity value is defined, (ii) a second set of pixels at each of which only a ground truth blue color intensity value is defined and (iii) a third set of pixels at each of which only a ground truth green color intensity value is defined, to form a two-dimensional image comprising an array of pixels at each of which a color intensity value is defined for each of red, green and blue colors; the method including: (a) applying at least one filter to the ground truth intensity values, to define, for each color, at least one respective interpolated color value at each of the pixels; (b) for each of the colors, performing regression filtering using as guidance the interpolated color values for at least one of the other colors, to form an estimated color value; (c) for each of the colors, obtaining residual values at the corresponding set of pixels as the difference between the estimated color value and the ground truth color value, (d) for each of the colors, interpolating the residual values; (e) for each of the colors, adding the interpolated residual values to the estimated color values to form a refined color value at each of the pixels; and (f) repeating the set of steps (b)-(e) at least once; in each said repetition, said step (b) being performed for each color using as guidance the refined color values for at least one of the other colors generated during the preceding performance of step (e); and wherein each time step (e) is repeated, a mean difference value is calculated indicative of the difference averaged over the image between the refined color values which step (e) produces and the refined color values produced in the previous performance of step (e), the repetition of steps (b)-(e) being terminated if the difference value is below a threshold.