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
On Wed, Nov 1, 2017 at 9:30 PM,
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
To: scikit-image@python.org Subject: [scikit-image] New Contributor Message-ID: 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