Abstract. Non-local means (NLM) is a powerful denoising algorithm that can protect texture effectively. However, the computational complexity of this method is so high that it is difficult to be widely applied in real-time systems. In this paper, we propose a fast NLM denoising algorithm which can product comparable or better result with less computation time than the traditional NLM methods. Some experimental results are provided to demonstrate the superiority of the proposed method.Keywords: Non-local means · Patch-based processing · Hierarchical searching
IntroductionImage and video denoising is one of the most important and challenging problem in the image processing community that has been studied for many years and continues to attract researchers with an aim to perform better restoration in the presence of noise. Many denoising algorithms have been proposed, such as median filtering, adaptive wiener filtering, wavelet denoising [1,2], etc. However, for various reasons, these methods cannot protect texture very well; an excellent denoising algorithm is required. In recent years, because the highly-structured geometrical form of natural images was taken into account, the nonlocal means (NLM) algorithm and some developed versions have been presented. NLM algorithms can achieve results which are close to the state-of-the-art. In the original NLM method, the restored gray value of each pixel is obtained by the weighted average of the gray values of all pixels in the image, and the weights of pixels is calculated based on the similarity between the neighborhood of the current pixel and the neighborhood corresponding to the other pixels [3][4][5][6]. To reduce the cost of computational complexity, the modified NLM schemes process the weighted average considering a limited area around the current pixel instead of the entire image [7]; even so, they cannot yet be extensively used in real-time systems for the excessive complexity. In this paper, a fast NLM denoising algorithm is proposed. Unlike the previous methods to restore image by weighted average of each pixel, we process image based on patch. For each patch, we find the similar area by fast scan, note that the similar area is always discontinuous and irregular geometrically; and then we restore the current patch by weighted average of each patch in the similar area.