1. A method of reducing speckle noise in an image using a processor and a memory, comprising: (a) receiving an image comprising a plurality of pixels, the plurality of pixels defining a neighborhood system for pixels, wherein the neighborhood system for pixels comprises a first pixel and one or more neighboring pixels; (b) estimating a coherence factor of the plurality of pixels; (c) performing a uniformity test on a subset of pixels comprising a portion of the plurality of pixels; (d) performing an intensity update on a pixel within the subset of pixels in response to the pixel being substantially non-uniform with respect to its neighborhood; and (e) repeating steps (c) and (d) for substantially all of the plurality of pixels thereby producing a speckle-noise reduced image.