1. A non-transitory computer-readable storage medium storing program instructions, wherein the program instructions are computer-executable to implement: transforming an input linear space image containing noise into flat noise space to produce a flat noise space image in which the noise is independent of signal values; applying an edge-preserving noise filtering technique to the flat noise space image to reduce the noise in the flat noise space image, wherein, in said applying an edge-preserving noise filtering technique to the flat noise space image, the program instructions are computer-executable to implement: identifying detail pixels and non-detail pixels in the flat noise space image, wherein the detail pixels indicate edges in the flat noise space image; and applying filters to the detail pixels and to the non-detail pixels in the flat noise space image, wherein a different filter is applied to the detail pixels than the filter applied to the non-detail pixels so that the edges in the flat noise space image indicated by the detail pixels are preserved; and transforming the flat noise space image with reduced noise into linear space to produce an output linear space image with reduced noise.