I posted this script upon a request coming from a Gimp user.
The assumptions are:
1 - the user had an original black&white drawing
2 - someone did "overpaint" the drawing with light watercolours
3 - the user likes to restore the original, as much as possible
The available Gimp functions (desaturate, grayscale) do not get rid of the gray nuances generated by the converted colours.
This filter is written on the basis of the colours theory (in painting) that any added colour does not really "add" but "remove" instead the complementary colour; for instance, if you have a white area and you overpaint it with pure Yellow, in practice you remove the blue component from White (yellow = red+green).
Ofnuts told me there is a manual quick solution, but -as you know- I'm quite lazy and prefer having a script performing what I want.
Here an example:
1-original b&w drawing
Attachment:
original.png [ 361.74 KiB | Viewed 2484 times ]
2-overpainted with watercolours
Attachment:
overpainted.jpg [ 133.61 KiB | Viewed 2484 times ]
3-outcome after running the script
Attachment:
after-the-script.jpg [ 89.12 KiB | Viewed 2484 times ]
output is not perfect (some black pixel was removed during the overpainting), but IMO acceptable
(note that this script makes use of the "tile" mechanism in python, as found on an example of Maldonado; you may use this method any time you have to deal with each byte in an image)
the script is already posted (thanks, Rod !) under GIMP Scripts and Plug-ins, here)