Non-local means (NLM) method is a state-of-the-art denoising algorithm, which replaces each pixel with a weighted average of all the pixels in the image. However, the huge computational complexity makes it impractical for real applications. Thus, a fast non-local means algorithm based on Krawtchouk moments is proposed to improve the denoising performance and reduce the computing time. Krawtchouk moments of each image patch are calculated and used in the subsequent similarity measure in order to perform a weighted averaging. Instead of computing the Euclidean distance of two image patches, the similarity measure is obtained by low-order Krawtchouk moments, which can reduce a lot of computational complexity. Since Krawtchouk moments can extract local features and have a good antinoise ability, they can classify the useful information out of noise and provide an accurate similarity measure. Detailed experiments demonstrate that the proposed method outperforms the original NLM method and other moment-based methods according to a comprehensive consideration on subjective visual quality, method noise, peak signal to noise ratio (PSNR), structural similarity (SSIM) index and computing time. Most importantly, the proposed method is around 35 times faster than the original NLM method.