Diffusion magnetic resonance imaging (DMRI) suffers from lower signal-to-noise-ratio (SNR) due to MR signal attenuation associated with the motion of water molecules. To improve SNR, the non-local means (NLM) algorithm has demonstrated state-of-the-art performance in noise reduction. However, existing NLM algorithms do not take into account explicitly the fact that DMRI signal can vary significantly with local fiber orientations. Applying NLM naïvely can hence blur subtle structures and aggravate partial volume effects. To overcome this limitation, we improve NLM by performing neighborhood matching in non-flat domains and removing noise with information from both x -space (spatial domain) and q -space (wavevector domain). Specifically, we first encode the q -space sampling domain using a graph. We then perform graph framelet transforms to extract robust rotation-invariant features for each sampling point in x-q space. The resulting features are employed for robust neighborhood matching to locate recurrent information. Finally, we remove noise via an NLM framework. To adapt to the various types of noise in multi-coil MR imaging, we transform the signal before denoising so that it is Gaussian-distributed, allowing noise removal to be carried out in an unbiased manner. Our method is able to more effectively locate recurrent information in white matter structures with different orientations, avoiding the blurring effects caused by naïvely applying NLM. Experiments on synthetic, repetitively-acquired, and infant DMRI data demonstrate that our method is able to preserve subtle structures while effectively removing noise.