1. A method for creating an output digital image by performing fast detail-preserving filtering of an input digital image comprising: a) selecting a pixel a from the input digital image, pixel a not being in a row or column at the boundary of the image; b) calculating the difference between the selected pixel and each of its four neighboring pixels located above, left, right, and below the selected pixel; c) calculating a scaled weighted sum of differences between the selected pixel and its four neighbors, where for each neighboring pixel b the weight is an edge-sensing function having a data-adaptive scaling parameter function; d) adding the weighted sum of differences to the value of the selected pixel; and performing a) through d) for each pixel in the input digital image that is not in a row or column at the boundary of the image.