Hi Srinivas, I am familiar with the BM3D algorithm and think it would be a good fit. As far as location, the code would fit best under the restoration subfolder where there are already routines for 2D and 3D non-local means. It is not likely to be trivial to implement because it will likely need some C/Cython code to have reasonable performance, but some code for neighborhood comparisons could be reused from the existing non-local means implementation. Please see the comments below on licensing terms (existing implementations I know of are not compatibly licensed so this means it would be need to be reimplemented from a description in the journal articles). 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. The IPOL journal has an open source 2D implementation in C++, but it is under an incompatible LGPLv3 license so it could not be used as the basis for an implementation in scikit-image. http://www.ipol.im/pub/art/2012/l-bm3d/ If you just need something for immediate use, there is also a Cython-based wrapper for the IPOL BM3D code here: https://github.com/ericmjonas/pybm3d There is also a reference implementation from the original authors in Matlab + compiled MEX (no C/C++ source code to the MEX files is provided) http://www.cs.tut.fi/~foi/GCF-BM3D/ The IPOL paper provides a detailed overview that could be used as the basis for making a clean implementation. - Greg On Wed, Nov 1, 2017 at 12:25 PM, Srinivas V <srinivasv147@gmail.com> wrote:
On Wed, Nov 1, 2017 at 9:30 PM, <scikit-image-request@python.org> wrote:
Send scikit-image mailing list submissions to scikit-image@python.org
To subscribe or unsubscribe via the World Wide Web, visit https://mail.python.org/mailman/listinfo/scikit-image or, via email, send a message with subject or body 'help' to scikit-image-request@python.org
You can reach the person managing the list at scikit-image-owner@python.org
When replying, please edit your Subject line so it is more specific than "Re: Contents of scikit-image digest..."
Today's Topics:
1. New Contributor (Srinivas V) 2. Re: New Contributor (Juan Nunez-Iglesias)
----------------------------------------------------------------------
Message: 1 Date: Wed, 1 Nov 2017 19:37:56 +0530 From: Srinivas V <srinivasv147@gmail.com> To: scikit-image@python.org Subject: [scikit-image] New Contributor Message-ID: <CABXwt0+37gx=Ay2XGOEvsyx+nGOJtfxx-=K9aqrCtWg9VeGJ_w@mail. gmail.com> Content-Type: text/plain; charset="utf-8"
Hi, I am Srinivas I wish to contribute to this project. I am interested in implementing the BM3D denoising. Can someone please guide me through the process of getting started with the existing code base. Regards, V Srinivas