• strict warning: Non-static method view::load() should not be called statically in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views/views.module on line 879.
  • strict warning: Declaration of views_attach_plugin_display_node_content::options_submit() should be compatible with views_plugin_display::options_submit(&$form, &$form_state) in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views_attach/views_attach_plugin_display_node_content.inc on line 248.
  • strict warning: Declaration of content_handler_field::options() should be compatible with views_object::options() in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/cck/includes/views/handlers/content_handler_field.inc on line 208.
  • strict warning: Declaration of views_handler_argument::init() should be compatible with views_handler::init(&$view, $options) in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views/handlers/views_handler_argument.inc on line 745.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views/handlers/views_handler_filter.inc on line 589.
  • strict warning: Declaration of views_handler_filter::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views/handlers/views_handler_filter.inc on line 589.
  • strict warning: Declaration of views_handler_filter_node_status::operator_form() should be compatible with views_handler_filter::operator_form(&$form, &$form_state) in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views/modules/node/views_handler_filter_node_status.inc on line 14.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views/plugins/views_plugin_row.inc on line 135.
  • strict warning: Declaration of views_plugin_row::options_submit() should be compatible with views_plugin::options_submit(&$form, &$form_state) in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views/plugins/views_plugin_row.inc on line 135.

Gimp: Edge avoiding wavelets

Hi folks,

finally I had enough time to make another promising algorithm accessible for gimp; edge avoiding wavelets. The inventor of the procedure is Raanan Fattal, you can get more information (including the research paper) here. The algorithm was implemented by Johannes Hanika and is part of darktable. I wrapped it into a small command line program and added a gimp script to call it. Binaries and source are attached.

Just copy the script in the plug-ins folder of gimp, NOT in the scripts folder. And set it executable on linux. (For windows read the readme file Wink).

I made there different modes available:

  • Linear amplification: This should model the linear presets from darktable, via the strength you can control if it denoises or sharpens the image, 1.0 is neutral. For denoising strength between 0.0 and 0.5 and nr of levels 2 give nice results.
  • Local contrast: This suppresses the finest detail, so noise is not amplified. A starting point would be, strength above 1.3 and nr of levels 6 or more.
  • Output level: This shows the individual levels, to get an idea how the algorithm works on the image. This is the only option where output layer effects the output. If it is larger then nr of levels you will see the residuum, otherwise the corresponding detail layer; all other are suppressed.

So have fun experimentating and give tribute to the inventors and the author!

Drop me a line, if you like it. Smile

greets mike

UPDATE: see here for a version with preview.


eaw-win32-bin.7z344.51 KB
eaw-linux32-bin.7z15.31 KB
eaw-linux64-bin.7z16.93 KB
eaw-source.7z5.09 KB


error message

Hi. I was trying to run this on my XP machine and was given an error that pthreadGC2.dll was not found. Does this ring a bell? Thanks.

Actually, I think that should

Actually, I think that should not be needed. But the dll you mention is included in this package: http://www.mm-log.com/edge-avoiding-wavelets-gimp Hopefully that solves your problem.

greets mike

Problem solved. I downloaded

Problem solved. I downloaded the .dll and added to system folder. Works now. Looks very promising. Especially valuable for when I use a P&S which is more prone to noise. Thanks.

Better UI

I wish it was the "real" plugin for GIMP with preview function and better UI (as it is in Darktable for example). Is there a chance for further development for this plugin (for Windows especially as there is no Darktable for Windows)?

Hi purebill, I'm not working

Hi purebill,

I'm not working on a real gimp plugin, I have no clue about the gimp plugin structure and my efforts still go to dlRaw developing. These plugins are just test cases, if it makes sense to put the individual part in dlRaw and in which form...

However, a windows version of darktable is planned as far as I know and there is of course the possibility to start learning C and doing it yourself, since every part is open source... Don't hesitate, it's not too hard Wink

greets mike


Giving software a version with a number never harms you know Smile

The date is included in the

The date is included in the files. Version numbers tend to have different meanings to differently trained people (e.g. windows or linux users)...

greets mike

Um, no :)

I think we don't understand each other Smile You are looking at that as programmer, I look at that as user. And as user I don't go reading date inside a Python file. If, say, a new version is broken, I just remove the files from ~/.gimp-2.7/plug-ins/, unpack a previous version from a file that is called, say, eaw-20100405-64bin.7z and install those files. This is how we, users, treat software that has revisions. It doesn't really matter if it's a number or a date Smile

That said, I do get interesting results when I go for local contrast mode. And I don't quite understand the point of "Output level" mode.

Well, it won't be a script

Well, it won't be a script with much updates I guess, if more updates are planned I'll put some kind of version information next to it (like I did with dlRaw-preview Wink).

The output level setting is not supposed to be useful directly on photos, it just shows the different levels the algorithm computes. That is basically why I did this script, to have a simple way to learn how the algorithm reacts and maybe to put useful workflows around it...

greets mike

Post new comment

The content of this field is kept private and will not be shown publicly.