Export to GitHub

selective-color-blur - Introduction.wiki


What Selective Color Blurring is

This plugin is an alternative to existing Selective Gaussian Blur but with more sophisticated (and processing time intensive) algorithm.

This plugin uses my own approach (algorithm) for blurring pixels, primarily the color information in image. When referring to color I mean combination of hue + saturation, though effectively the plugin doesn't calculate these two numbers, but works in 3D 'relative' RGB colorspace instead.

So f.e. pixel with values [100,150,250] is changed to [-0.4, 0.05, 0.3, 0.6]. First three values are relative RGB values and the last one is a brightness. This way the plugin is able to separately test a color distance and brightness difference.

Controls

Here are screenshots of two latest versions (0.5.0 and 0.6.0) - plugin dialog windows:

|http://selective-color-blur.googlecode.com/files/plugin_window_0.5.0.png|http://selective-color-blur.googlecode.com/files/Plugin_window_0.6.png| |:----------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------|

(The layout and content of plugin window changes quite frequently)

Basic parameters to adjust is radius and iterations. The plugin works in iterations, so the image is blurred multiple times, every time with given radius. So approximately:

overall radius = radius * iterations.

The main advantage of blurring in steps is that it blurs 'around a corner'.

Main controls are two thresholds:

  • Color threshold
  • Value (brightness) threshold (since 0.2.4), I added it to prevent blurring areas with significant differences in brightness. Note that black and white colors have mathematically the same color so would/are blurred together.

Directions of blurring

The plugin test 8 directions from an actual pixel and each direction either meets or doesnt meet the requirements (tresholds). If number of compliant directions is n or more, the central pixel is updated by values from these directions.

In older versions n was 3, but starting with 0.6.0 you can modify this value with strictness slider.

Forced blurring

The exemption to the 'n good directions at least' rule is forced blurring where the plugin (in case there are not n 'good' directions) search for n (at least) most closest directions and uses those for blurring.

As a result, the plugin is very cpu intensive. Anybody willing to help me with profiling and optimizing it? :)

Output modes

The plugin has 4 output modes

  • "Blur the color only" - blurs the color on place. The fastest way how to blur (~fix) saturation on image
  • "Cartoonize" - blurs also brightness. The title is self-explanatory :)
  • "Cartoonize with reduction in brightness" - the image is bit brighter
  • "Create lines" - simply creates lines on borders between areas that are not blurred together

Location

FILTERS -> BLUR -> COLOR SELECTIVE BLUR

Usage example (Saturation)

Here is an example how I saturated an image. I must admit that original image was not so poor as to demonstrate usefulnesses of the plugin :) Also I have to note that final saturation is one of 3 predefined options in plugin and I did not tweak it afterwards - so it might be bit overdone.

http://selective-color-blur.googlecode.com/files/colorization-example-tatras.jpg

When to use the plugin

There are two scenarios, this can be useful - poorly saturated images that needs to be saturated. This should prevent occurrence of artifacts. Then it is alternative to decompose image to HSV colorspace and blurring H (though my approach is I dare to say better :) )

And second scenario is cartoonization of image and/or creation of lines.

Few examples

http://selective-color-blur.googlecode.com/files/example-subordient_blur.jpg

Another example - here I got very colorful image (after some saturation), this is how I like it :)

http://selective-color-blur.googlecode.com/files/example-tree.JPG

Adding lines

Here I added lines to color-blurred image. The lines are generated on separate layer (providing you are not converting current layer to lines) and the new layer have to be switched to "Darken only" mode. Alternatively you can blur the lines beforehand to soften too 'raw' shape of lines as generated by Color Blur plugin.

http://selective-color-blur.googlecode.com/files/lines_example.jpg

http://selective-color-blur.googlecode.com/files/on-beach.jpg

The plugin allows tuning amount of lines that are created. It is names "Lines Sensitivity" in GUI. Here is example - I must say that image is not suitable for cartoonization so algorithm struggled to generate lines. I used "Forced Smoothing" mode to get cleaner lines.

http://selective-color-blur.googlecode.com/files/lines-sens.jpg

Extreme Noise blurring

This is corner case, might be not badly useful but I believe this is not easy to achieve with any other tools delivered with gimp. Here I smoothed noisy image, the radius is 1, iterations 100 (big number is needed).

http://selective-color-blur.googlecode.com/files/noise-blur.png

Smoothening (removal of noise and small discrete areas)

Due to the nature of the algorithm, it can produce small unblurred areas/ even pixels. So to get rid of such residuals / small-scale details you can use "Forced Smoothening" checkbox. This is quite experimental function (introduced in 0.3.6), here is an example:

http://selective-color-blur.googlecode.com/files/smoothenig.jpg

Non-interactive mode

Is available since 0.3.5, you can process images in batches, and also without GUI. See Readme-NON-INT.txt inclosed in tarbal for more details.

Download and installation

Latest version can be downloaded here in "Download" section, or just with this direct link: http://selective-color-blur.googlecode.com/files/colorblur-0.6.2.tgz

Read enclosed README.txt for installation info.

Just note, that this is source. Not a binary, especially not a windows binary:). However it is trivial to compile and install under linux.

And here is a link where you can find windows versions of plugin: http://gimpchat.com/viewtopic.php?f=7&t=6426 (search for newest one)

Arch Linux user can use this PKGBUILD

Contact

If you have comments, ideas for enhancement or whatever contact me at: tiborb95 at gmail dot com (preferred method), or you can use Issues section here (might take long until I notice new issue) or use this thread http://registry.gimp.org/node/25801.



This plugin is distributed for free and under GPL license. I dont expect earning big money from it, but if the tool is useful and/or fun to use for you, you can consider paying a voluntary price for the time I spent developing and maintaining it.

https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=GBERSY833N4AA'>https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif' border='0'>


You can also visit homepages (with introduction and examples) of other gimp plugins I made:

  • http://code.google.com/p/rainbow-tonemapping/wiki/Introduction'>Rainbow Tonemapping
  • http://code.google.com/p/cartooner-color-reducer/wiki/cartoonerIntroduction'>Cartooner-Color Reducer