Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement wavelet denoising filters #602

Closed
thearn opened this issue Jun 26, 2013 · 17 comments
Closed

Implement wavelet denoising filters #602

thearn opened this issue Jun 26, 2013 · 17 comments
Labels
Milestone

Comments

@thearn
Copy link

thearn commented Jun 26, 2013

Discrete wavelet transforms are popular tools for denoising digital images and (other types of signals). Implementation of a few image filtering functions would be great, perhaps by letting pywavelets do the heavily lifting of the forward & inverse wavelet transformations.

@sciunto
Copy link
Member

sciunto commented Jul 7, 2013

Hi @thearn,

I never used wavelet but I'm interested in it. Do you have references? (pseudo-code or implementation in other languages is also appreciated). Scipy has several functions about wavelets, something is missing in it?

I need more insights but maybe I can help.

@stefanv
Copy link
Member

stefanv commented Jul 8, 2013

Here's an example of how to use pywavelets to do such filtering:

https://github.com/stefanv/supreme/blob/master/supreme/noise/wavelet.py

Perhaps that can serve as a starting point.

@sciunto
Copy link
Member

sciunto commented Aug 22, 2013

@stefanv : Since your code is under GPL, it is not compatible with skimage's license. So, I need to officially ask you the permission to re-use here :-)
I have not read yet the references you used but it looks like a nice starting point as you said.

@stefanv
Copy link
Member

stefanv commented Aug 23, 2013

Ah, before I saw the light. This is now fixed:

https://github.com/stefanv/supreme/blob/master/doc/LICENSE.txt

@thearn
Copy link
Author

thearn commented Oct 6, 2013

Sorry for raising the question then disappearing! I have a bit of free time now, so I can start working on this as well. I don't know if @stefanv has pull requested anything yet, but I've written quite a bit of python code for wavelet filtering while I was in grad school.

@sciunto
Copy link
Member

sciunto commented Oct 6, 2013

@thearn I copy paste the email I sent to the mailing list few days ago. Thanks for your help.


Dear skimagers,

With Ralf, we initiated a "friendly" fork of pywavelet for a future
inclusion in scipy and David joined us in this work. We improved the
doc, removed old-fashioned codes and we are trying now to add tests.
We started this because I was considering this ticket:
#602
Indeed, I believe wavelets may be useful for scikit-image. Instead of
requiring a new dependency, I thought it is much more valuable to
integrate the code in scipy and this is now in the workplan for scipy1.0.

If some of you used pywavelet before, we would be grateful to you if you
can check your code against the fork. It must be fully compatible with
pywavelets.

Thanks!
Cheers.
François.

-------- Message original --------
Sujet: large PyWavelets update, please test
Date : Tue, 1 Oct 2013 17:56:36 +0200

Hi all,

nigma/pywt#7 contains a large refactoring of
PyWavelets, with contributions from Francois Boulogne, David Menendez
Hurtado and myself. Main feature is support for Python 3 (single code
base). Other changes are:

  • Numpy style docstrings for all public functions
  • A unit test suite with reasonable coverage (see
    https://coveralls.io/r/rgommers/pywt)
  • PEP8 and Numpy C code standard compliance
  • Changes to source tree layout, build setup, Numpy interfaces and C and
    Cython templating to more standard styles.

This set of changes is supposed to be fully backwards compatible. They
were quite invasive though (~150 commits), so there's a decent chance
that some things not covered by the test suite were broken in the
process. To catch those now, it would be very helpful if people could
test their own code against either use the PR or the master branch of
https://github.com/rgommers/pywt.

While we've kept full backwards compatibility so far, we've also
compiled a list of things that could be improved in the current API:
https://github.com/rgommers/pywt/issues/38. Please add suggestions there
if you have them.

Cheers,
Ralf

@stefanv
Copy link
Member

stefanv commented Feb 6, 2014

@rgommers @sciunto Is there any news on the integration of pywt in scipy?

@stefanv
Copy link
Member

stefanv commented Feb 6, 2014

@rgommers Sorry, just saw the thread about this as a potential project for GSoC on the scipy mailing list.

@rgommers
Copy link

rgommers commented Feb 7, 2014

@stefanv the integration is not a whole project, more like a few days of work. I'm just lacking the bandwidth at the moment. The main part of the GSoC would be adding new features, and things like a more complete tutorial maybe. The whole refactoring is done, so the code is in OK shape to be integrated now.

@sciunto
Copy link
Member

sciunto commented Feb 7, 2014

@stefanv I'm working on an integration in scikit-image we can keep until an version of scipy integrating this feature is well spread on major OS/distrubutions. Thanks for the ping.

@ankit-maverick
Copy link
Contributor

@stefanv : Is this the thread you are referring to in your last comment(http://thread.gmane.org/gmane.comp.python.scientific.devel/18202/focus=18255)?

@stefanv
Copy link
Member

stefanv commented Mar 10, 2014

@ankit-maverick
Copy link
Contributor

@stefanv : thanks, I limited my search to scipy-dev list.

@rgommers : I am yet to go through your major refactor PR(nigma/pywt#7) for pywt, but I guess after the integration of pywt with your refactor into scipy.signal, @thearn's PR(#760) can be merged in skimage without many changes?

@rgommers
Copy link

@ankit-maverick I didn't review that PR but I think so. Besides the minor issue that scikit-image should work with older scipy versions, so it should ship a private copy of what goes into scipy for a few releases. My PR should fix the Python 3.x issue and not have broken backwards compat (so far). We may rethink some API decisions before merging into scipy though.

@sciunto
Copy link
Member

sciunto commented Mar 10, 2014

There is also a possible issue about scipy.integrate.cumtrapz/ (see https://github.com/rgommers/pywt/issues/7) we should look at. The main problem I had was with travis :/ I do not remember the details.

@soupault soupault added the ⏩ type: Enhancement Improve existing features label Dec 11, 2015
@soupault soupault added this to the 0.13 milestone Mar 15, 2016
@soupault
Copy link
Member

soupault commented Aug 5, 2016

Closed via #1833. More PRs to come occasionally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants