Defining image mask based on image values G'MIC

I am using the inpainting command in GMIC, which takes in both an image and a mask which indicates which part of that image to inpaint. Values that are 255 on the mask are then filled in.

http://gmic.eu/reference.shtml

The input images I am using have huge black portions (the value of the pixels are 0 here). I want to define the mask to be exactly the pixels of the original image which are black.

Of course, I can preprocess all these masks in matlab, python, etc, but this will take a long time as I am processing on the order of 1 million images. GMIC has a fast piping interface which does everything in memory, and a mathematical interpreter, so I should be able to do this all with the GMIC command line and save a lot of time.

The answer I need does this entirely in GMIC using it’s mathematical interpreter. Thanks in advance!

What commands or scripts have you tried in order to achieve this?

Something like this probably :

$ gmic input.png --select_color 0,0,0,0 -inpaint[0] [1],.... -keep[0] -o output.png

(where you must set your inpaint parameters according to your needs).

1 Like

So, in matlab, I do:

mask = image(:,:,1) == 0

ahh, exactly what I need. I was sure something like this existed but didn’t know what it was. Thanks so much!