1. A method of reducing noise in a image comprising the steps of: selecting a noise amplitude threshold as a function of analog or digital gains applied to amplify pixels signals in the image; and after first denoising the image to remove spurious noise; performing a denoising operation on the image comprising, for each pixel in the image, the steps of: calculating a difference between a value of a target pixel and a value of each same-color neighboring pixel surrounding the target pixel, and replacing the value of the target pixel with an average value calculated from the value of the target pixel along with values from each of the same-color neighboring pixels which have an associated difference that is less than or equal to the noise amplitude threshold, wherein the values of previously de-noised, same-color neighboring pixels are used in replacing the value of the target pixel.