Wavelet denoise

The wavelet denoise plugin is a tool to selectively reduce noise in individual channels of an image with optional RGB<->YCbCr conversion. It has a user inteface to adjust the amount of denoising applied. The wavelet nature of the algorithm makes the processing quite fast.

Features

  • User interface with preview is available.
  • Amount of denoising for each channel is selectable.
  • Possibility to denoise YCbCr channels instead of RGB exists.
  • Conversion from RGB to YCbCr is lossless.
  • Calculations are done on linear data (not gamma-corrected data).
  • Preview is capable of displaying one single channel if desired.
  • Processing time is reasonably fast (around 10 seconds for a 10 Megapixel image) and independent from the amount of denoising applied.

Details

The wavelet denoise plugin for The GIMP reduces noise in an image using the algorithm copied and slightly altered from the UFRaw program [Udi Fuchs] (which inherited the algorithm from dcraw [Dave Coffin]). Instead of denoising all RGB channels at once, the plugin implementation allows to denoise the RGB channels individually and - even more useful - to denoise the YCbCr channels individually. The YCbCr conversion is nearly lossless as the internal calculations are done in floating point numbers and rounding errors are avoided. Because the algorithm implements a wavelet filtering it runs quite fast.

Preview

This is part of a picture taken with the Nikon D80 DSLR camera at ISO 1600 in RAW format. The face is lit by two candles and a colour temperature setting of 2500 K was used. The file was opened with the UFRaw plugin.

The goal is not to reduce all noise. The unpleasant part is the chroma noise which appears only when shooting the camera in RAW mode at a high ISO speed. As you can see the colour (chroma) noise is almost completely gone in the second picture and the luminance noise is slightly reduced. Especially in the lower right corner of the preview image the improvement is apparent. If you look closely at the face you will notice that the image details have not been altered much, the sharpness is almost the same.

Note that this is just the result of a uniform application of the filter on the unprocessed image. Masking the filter effect with a selection is possible which could improve the result even more.

What's new in version 0.2

There are several changes that have been made to improve the plugin.

  • The denoising is done on linear data now. The sRGB gamma of approximately 2.2 is compensated.
  • The interface has been reorganized
  • A 'Detail' slider has been added which affects the thresholds dependency on noise frequency.
  • Tool-tips have been added.
  • The single channel preview can now be displayed in colour.
  • There is a 'Reset' button which resets the currently selected channel temporarily (during the time the button is pressed).
  • Normal reset buttons have been added.
  • The size of the dialog is saved now after it is closed.
  • The default thresholds are all zero now.
  • The progress bar was fixed and tweaked.

Apart from that minor other changes have been made.

License

The plugin is distributed under the General Public License (GPL).
Average: 5 (7 votes)
AttachmentSize
wavelet-denoise-0.1.1.tar.gz13.67 KB
wavelet-denoise-0.2.tar.gz16.1 KB
wavelet-denoise-0.2-win.zip134.91 KB

Comments

Wavelet denoise error under GIMP 2.4.0 WinXP fixed with 2.4.6

BryanSmith, I had the same error message with GIMP 2.4.0 under WinXP, but when I upgraded to GIMP 2.4.6 the error message went away. (I also found that UFRaw failed with 2.4.6, but that's another problem for another thread!)

Plug in caues error in Gimp

I copied the file wavelet-denoise.exe to the C:\Program Files\GIMP-2.0\lib\gimp\2.0\plug-ins directory. When I started GIMP I got the following error: "The procedure entry point gtk_widget_set_tooltip_text could not be located in the dynamic link library libgtk-win32-2.0-0.dll".

I am running windows XP home.

A search on Google suggested the problem may be due to multiple copies of libgtk-win32-2.0-0.dll. A search found copies of libgtk-win32-2.0-0.dll in the following directories: C:\Program Files\Common Files\GTK\2.0\bin (2.10.6.0) and, C:\Program Files\GIMP-2.0\bin (2.10.14.0).

I sent the entire C:\Program Files\GIMP-2.0 directory to the recycle bin and restarted windows. However I still get the error.

Wavelet denoise 0.2: Windows binary released

Thanks to JamesH a binary for Windows is now available. Please comment if you are experiencing problems with it.

Incomplete install instructions

Please add in the install instructions information on how to install "gimptool" because many users probably try to use synaptic, but they will notfind gimptool there. --- One needs to install libgimp2.0-dev (plus several dozens more libraries via dependencies).

EDIT: Installation worked flawless; and I am impressed with the tool. Thanks for providing it!

Re: Incomplete install instructions

Thank you for pointing this out. I was not aware that there are distributions where gimptool-2.0 did not come with the GIMP package.
Using google I found that there is a package "gimp-plugin-registry" for Debian and one for Ubuntu with the same name, that includes my plugin (however, I believe it's still the beta version).
To get gimptool-2.0 going to compile it yourself, please refer to the GIMP manuals.

Wavelet denoise v0.2 released!

Finally the new version of wavelet denoise has been released!

There is one or two important difference between the final release and the beta version: the plugin now operates on linear image data (as opposed to gamma corrected data) and the processing speed has been increased.

Here's the complete list of changes from version 0.1.1:

  • Operates on linear data now (not gamma corrected).
  • Increased processing speed.
  • Interface reorganized.
  • Added 'Detail' slider which affects the thresholds dependency on frequency.
  • Added tool-tips in the user interface.
  • Colour previev of single channels added.
  • Button 'Reset temporarily' added for preview.
  • Reset buttons added.
  • The size of the dialog is saved now.
  • Changed default thresholds.
  • Progress bar bugfix done.
  • Minor fixes.

Enjoy!

Wavelet denoise v0.2 released!

I can test on xp the binary provided by jamesH , i suppose are still for the beta version and not updated to this release..

Correct?

i'm happy to help with some testing in windows if needed

and i may check also "if the license, install, readme files are included in the archive." and if not fix that details in a new package

I'm not good in building in windows but once the bigger part of the job is done and the binary is ready...
...well ,
...then add a folder with "the license, how install, read me files" and even a link to the source code and zip all for me is not a problem
, i will happy to do at soon i get a reply

I had build the windows

I had build the windows binary
and mail to marco on Aug 1 2008

wawelet denoise

Thank JamesH to find the time to build
Marcor you may post a link to download
(even by PM if should be added yet license and source code link )
PS
i just finish testing the previous win version seems working fine but i must find more meaningful sample, i do not trace much "noisy photos" adapt for a test have you some for a confront?

Wavelet denoise: 0.2-beta released

The beta version of the plugin wavelet denoise 0.2 has been released. There are many changes - suggestions are welcome.

Changes:

  • Interface reorganized.
  • Added 'Detail' slider which affects the thresholds dependency on frequency.
  • Added tool-tips in the user interface.
  • Colour preview of single channels added.
  • Button 'Reset temporarily' added for preview.
  • Reset buttons added.
  • The size of the dialog is saved now.
  • Changed default thresholds.
  • Minor fixes.

Any chance of adding this to ufraw?

I think it would be a great addition.

Any chance of adding this to ufraw?

You surely know that there is denoising in UFRaw. That's where I took the algorithm for this denoising plugin from. In UFRaw the denoising is done on linear data before bayer interpolation and therefore colour model conversions cannot be made. It could be done after the interpolation though.

However, I share the belief that software is not perfect when there is nothing left to add but when there is nothing left to leave away. I talked to the author of UFRaw and I think he will not change it. (I did not request it, you know.) Note that there is no 100% magnification of the preview image available in UFRaw at the moment and that would be necessary for decent denoising.

What's wrong with using a plugin for the job? Let's not make UFRaw complicated!

Re: Any chance of adding this to ufraw?

Hi,
I would love to use the plugin, but I'm a windows person. Any tips for using cygwin to compile it?

In linear space it might be possible to do color model conversions that would be appropriate for denoising. What about converting to XYZ? I see a simple matrix in Dcraw for doing that. In fact I think this is the best place to do the denoising.

Jon

Install error's

Hi all:
I want to write my case:
For installation in Ubuntu-8.04-AMD64, libgimp2.0-dev 2.4.5-1 installed, I wrote gimptool-2.0 --install-admin wavelet-denoise.c.
Notice that the file's name is wavelet-denoise.c not wavelet_denoise.c

wawelet denoise : Any hope for windows binary ?

Any hope for windows binary ?
will be needed to port it in windows or is just to compile?
("just" is a euphemism... is far to be simple for me, but will be hopeless if some of dependency have not a equivalent in win).

windows binary

I use this exclusively on my

I use this exclusively on my petition site

Re: wavelet denoise windows binary

Thank you, JamesH, for providing this! I could not test it however as I have no Windows system with GIMP available. I will add it to the file list when somebody has checked it and if the license, install, readme files are included in the archive.

There will soon be another release with new features and I hope you will repeat this trick.

Re:Wavelet denoise windows binary and 0.2-beta released

You are welcome
and here is new one
wavelet-denoise-0.2-beta.zip

My English is not good, so sorry for my short sentence

Re: wavelet denoise : Any hope for windows binary ?

I'm sorry but I don't know how to do it and I work on Linux exclusively. Maybe somebody else could provide a solution...

wavelet denoise

i downloaded it and decompressed it to my desktop. you have to install gimptool from synaptic. then you should be able to install it using gimptool. im new at this too, but i got it working. try this gimptool-2.0 --install wavelet-denoise.c. sorry i misread the post[this is for linux) as soon as i install it in windows ill get back to you.

uh..installing in windows

uh..installing in windows should be simple as a double click to unzip, and then move the extracted file in 1 of the gimp plugin folder (better in the less visible that usually is in
for xp
C:\ Documents and Settings\YOUR NAME HERE\.gimp\plugin
for Vista
C:\Users\YOUR NAME HERE\.gimp\plugin