Log in

View Full Version : selectivecolour - highly experimental clone of Photoshop's Selective Colour as filter


wonkey_monkey
10th December 2009, 21:48
WARNING: This filter is highly experimental, and also probably very badly written. It was written by me for very specific purposes, but I thought it might just be useful to somebody, somewhere.

Update: the filter's now written a bit better, doesn't suffer from pitch problems, and is multithreaded.

This filter partially copies the actions of Photoshop's "Selective colour" image adjustment action. Apart from an input clip (which must be RGB32) it takes 19 arguments.

The first 18 are floats in the range -1 to 1 (other values are accepted, but that behaviour is not well defined). These are in groups of three, representing the Cyan, Magenta, and Yellow %ages (normalised) present in Photoshop's Selective Color dialogue for each of the six colour sections (reds, yellows, greens, cyans, blues, magentas).

The last is a boolean to choose either relative (false) or absolute (true) mode, as per the Photoshop dialogue box.

Usage:


avisource("...")
converttorgb32
selectivecolour(last,\
0.5,0,0,\
0.25,0.1,0,\
1,-0.5,-0.25,\
-0.5,0.5,-0.5,\
0.1,0.2,0.3,\
-0.1,-0.2,-0.3,\
true)


The six triples act on the following sets of pixels (a pixel may be a member of up to 2 adjacent sets):

Reds: those pixels where R>G and B
Yellows: R and G>B
Greens: G>R and B
Cyans: G and B>R
Blues: B>R and G
Magentas: R and B>G

The first number in a triple alters the Red channel, the second the Green channel, the third the Blue channel. Because Photoshop calls these values Cyan, Magenta and Yellow, the numbers work backwards - if you want to increase the intensity of a channel, use a negative number, and vice versa.

The filter doesn't currently implement the "Black" value in Photoshop.

The filter may fail to work correctly when a clip has been cropped horizontally (because source and destination may not have the same pitch). This bit no longer true!

Any use to anyone?

David

markanini
11th December 2009, 03:55
Cool.

wonkey_monkey
11th December 2009, 17:44
Proper download link:

selectivecolour.zip (http://horman.net/selectivecolour.zip)

David

Gavino
11th December 2009, 18:43
If you included the source code, we could probably help you with the pitch problems.

wonkey_monkey
11th December 2009, 20:45
If you included the source code, we could probably help you with the pitch problems.

No need, but thanks - as I said, I wrote it as a quick-and-dirty solution to a very specific problem. I know what the pitch problem is, and how to fix it, but I'm ignoring it because it's not a factor to me (my source video is never cropped).

I just thought I'd post this first to see if there was enough interest to warrant tidying it up. I spent far longer working out how Selective Colour works than I did writing the plugin, as you'd probably be able to tell if you saw the source!

David

wonkey_monkey
20th October 2011, 19:13
I hope it's not too immodest to bump my own ancient thread, but I've updated the filter. It's now multithreaded and the pitch problem is fixed. Plus, I've finally found someone besides myself who has a use for it.

David

Mounir
20th October 2011, 19:25
Can you post pictures before/after please i hate when guys post their scripts and we don't know what to expect

Edit:
Something like THIS (http://www.newtutorials.com/selective-color-adjustment.htm) ?

wonkey_monkey
20th October 2011, 19:41
As a matter of fact, exactly like that - barring rounding errors. You're right, I should have posted some images - I wrongly assumed familiarity with Photoshop. I can't find a much better example than those on that page, so:

http://www.newtutorials.com/selectivecolor/selective01.gif http://www.newtutorials.com/selectivecolor/selective10.gif

David

Hiritsuki
20th October 2011, 20:50
Hi, can you tell me that parameter how to use?

geminihc
8th July 2015, 04:23
sorry to revive this thread but i CANT find anything like this!

but i'm abit technically challenged, can someone tell me how i can use this with Potplayer? There is a avisynth button , i've installed avisynth, and entered the DLL, and entered the script above but nothing seems to change. i'm not sure if avisynth is even on...

i'm looking to change the color of someone hair in a video, during real-time playback