A method of processing image data defining an image to calculate pixel values for a plurality of pixels within the image, the method comprising: defining a plurality of overlapping template patterns of pixels such that each template pattern comprises a region of the image and each pixel for which a value is to be calculated is present in at least two of the template patterns; for each template pattern: - defining a search area comprising the whole of the image or a region of the image that is larger than the template pattern; - comparing the values of the pixels in the template pattern with the values of the pixels in each of a plurality of candidate patterns, each candidate pattern comprising a region from the search area for the template pattern; - selecting from the plurality of candidate patterns the candidate pattern which represents a best match with the template pattern; and - determining for each pixel within the template pattern for which a value is to be calculated a respective pixel value from the selected candidate pattern; thereby generating for each pixel in the image for which a value is to be calculated, a plurality of values such that each value is derived from a different candidate pattern; and for each pixel for which a value is to be calculated, combining the derived pixel values therefor to generate a resultant value. defining a plurality of overlapping template patterns of pixels such that each template pattern comprises a region of the image and each pixel for which a value is to be calculated is present in at least two of the template patterns; for each template pattern: - defining a search area comprising the whole of the image or a region of the image that is larger than the template pattern; - comparing the values of the pixels in the template pattern with the values of the pixels in each of a plurality of candidate patterns, each candidate pattern comprising a region from the search area for the template pattern; - selecting from the plurality of candidate patterns the candidate pattern which represents a best match with the template pattern; and - determining for each pixel within the template pattern for which a value is to be calculated a respective pixel value from the selected candidate pattern; - defining a search area comprising the whole of the image or a region of the image that is larger than the template pattern; - comparing the values of the pixels in the template pattern with the values of the pixels in each of a plurality of candidate patterns, each candidate pattern comprising a region from the search area for the template pattern; - selecting from the plurality of candidate patterns the candidate pattern which represents a best match with the template pattern; and - determining for each pixel within the template pattern for which a value is to be calculated a respective pixel value from the selected candidate pattern; thereby generating for each pixel in the image for which a value is to be calculated, a plurality of values such that each value is derived from a different candidate pattern; and for each pixel for which a value is to be calculated, combining the derived pixel values therefor to generate a resultant value.