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 <srinivasv...@gmail.com> wrote:

>
>
> On Wed, Nov 1, 2017 at 9:30 PM, <scikit-image-requ...@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-requ...@python.org
>>
>> You can reach the person managing the list at
>>         scikit-image-ow...@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 <srinivasv...@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
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: <http://mail.python.org/pipermail/scikit-image/attachments/
>> 20171101/bebcd58c/attachment-0001.html>
>>
>> ------------------------------
>>
>> Message: 2
>> Date: Thu, 2 Nov 2017 01:18:02 +1100
>> From: Juan Nunez-Iglesias <jni.s...@gmail.com>
>> To:
>>         "=?utf-8?Q?Mailing_list_for_scikit-image_(http=3A//scikit-im
>> age.org)?="
>>         <scikit-image@python.org>
>> Subject: Re: [scikit-image] New Contributor
>> Message-ID: <d18b0a85-6d6e-40bc-944c-2dde5c9589de@Spark>
>> Content-Type: text/plain; charset="utf-8"
>>
>> Hi Srinivas,
>>
>> Thanks for reaching out on the mailing list. It?s the right first step. =)
>>
>> As a second step, please read our contributing document:
>> http://scikit-image.org/docs/0.13.x/contribute.html
>>
>> Can you send us a reference to the algorithm you?re proposing? I have
>> never heard of it?
>>
>> Thanks,
>>
>> Juan.
>>
>> On 2 Nov 2017, 1:08 AM +1100, Srinivas V <srinivasv...@gmail.com>, wrote:
>> > 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
>> > _______________________________________________
>> > scikit-image mailing list
>> > scikit-image@python.org
>> > https://mail.python.org/mailman/listinfo/scikit-image
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: <http://mail.python.org/pipermail/scikit-image/attachments/
>> 20171102/11b21b74/attachment-0001.html>
>>
>> ------------------------------
>>
>> Subject: Digest Footer
>>
>> _______________________________________________
>> scikit-image mailing list
>> scikit-image@python.org
>> https://mail.python.org/mailman/listinfo/scikit-image
>>
>>
>> ------------------------------
>>
>> End of scikit-image Digest, Vol 14, Issue 1
>> *******************************************
>>
> Hi,
> Actually BM3D denoising is one of the requested features on the link(
> https://github.com/scikit-image/scikit-image/wiki/Requested-features).
> The links to references to the algorithm is (http://www.ipol.im/pub/art/
> 2012/l-bm3d/). Also I wanted to know if the code I would write would go
> under the transform folder or some other.
> Regards,
> V Srinivas.
>
> _______________________________________________
> scikit-image mailing list
> scikit-image@python.org
> https://mail.python.org/mailman/listinfo/scikit-image
>
>
_______________________________________________
scikit-image mailing list
scikit-image@python.org
https://mail.python.org/mailman/listinfo/scikit-image

Reply via email to