On Wed, Nov 1, 2017, at 10:10, Gregory Lee wrote:
Juan:  Similar to non-local means, BM3D looks at the similarity between all patches in a local neighborhood.  However rather than simply computing weights based on the patch difference, similar 2D patches are grouped into a 3D stack of patches (thus the 3D in BM3D).  This stack of similar patches is transformed with a sparsifying transform, the coefficients are thresholded, the transforms is inverted and then finally there is aggregation of the denoised patches.  This leads to substantial improvement over non-local means.

I chatted to the author of SPORCO at SciPy---it looks like a great package, and may be useful here:

http://bwohlberg.github.io/sporco/

Stéfan