Non-local means (NLM) is a popular image denoising scheme for reducing additive Gaus-sian noise. It uses a patch-based approach to find similar regions within a search neighborhood and estimate the denoised pixel based on the weighted average of all the pixels in the neighborhood. All the pixels are considered for averaging, irrespective of the value of their weights. This thesis proposes an improved variant of the original NLM scheme, called Weight Thresh-olded Non-Local Means (WTNLM), by thresholding the weights of the pixels within the search neighborhood, where the thresholded weights are used in the averaging step. The key parameters of the WTNLM are defined using learning-based models. In addition, the proposed method is used as a two-step approach for image denoising. At the first step, WTNLM is applied to generate a basic estimate of the denoised image. The second step applies WTNLM once more but with different smoothing strength. Experiments show that the denoising performance of the proposed method is better than that of the original NLM scheme, and its variants. It also outperforms the state-of-the-art image denoising scheme, BM3D, but only at low noise levels (σ ≤ 80).