A variety of methods have been introduced to remove noise from digital images. However, many algorithms remove the fine details and structure of the image in addition to the noise because of assumptions made about the frequency content of the image. The non-local means algorithm does not make these assumptions, but instead assumes that the image contains an extensive amount of redundancy. This work will implement the non-local means algorithm and compare it to other denoising methods in experimental results. The main focus of this paper is to propose an improved non-local means algorithm addressing the preservation of structure in a digital image. The NL-means algorithm is proven to be asymptotically optimal under a generic statistical image model. The powerful evaluation method to be the visualization of the method noise on natural images.