This paper proposes a new method for image denoising with edge preservation and enhancement, based on image multi-resolution decomposition by a redundant wavelet transform. At each resolution, the coefficients associated with noise and the coefficients associated with edges are modeled by Gaussians, and a shrinkage function is assembled. The shrinkage functions are combined in consecutive resolutions, and geometric constraints are applied to preserve edges that are not isolated. Within the proposed framework, edge related coefficients may be enhanced and denoised simultaneously. Finally, the inverse wavelet transform is applied to the modified coefficients. This method is adaptive, and performs well for images contaminated by natural and artificial noise.