Joined: Sep 20, 2011
Hello there! I'm rggjan, one of the authors (obviously
) of this portable. I'm currently studying computer science at the ETH in Zurich.
After seeing that my branch created so much Buzz here (thanks to Partha), I decided to create a little FAQ here.FAQ
- What is the RGGJAN portable?
It is a branch of the original gimp, where the foreground extraction tool was exchanged. I always felt that this tool was next to useless in its current state in gimp (reasons see below). Therefore I looked for the best current foreground extraction algorithm (http://www.alphamatting.com/eval_25.php) and implemented that in Gimp as a semester project.
- Whats the difference to the old foreground extraction tool?
The old algorithm, implemented after an older paper (http://www.siox.org/), has the main problem that it generates only a binary alpha matte. The problems with that is that you can have severe "color bleeding" of the background color into the foreground at borders. For example, fine black hair on a green background gets darkish green. Also, you don't have any transparancy or antialiasing at borders, each pixel is either foreground or background.
The new algorithm, on the other hand, tries to find out the foreground AND the background color of each pixel, and with that, it can calculate a semitransparent alpha value. This also means that the background color can be removed from the final extracted pixel, what gives, in general, much better results.
More details here:
FinalReport.pdf [2.13 MiB]
Downloaded 606 times
- In what state is it?
As mentioned, it was realised as a semester project at ETH on e relatively tight time schedule. That means, it is currently more like a proof-of-concept than a real alpha or beta version. This is mainly because the user interface is in a very early stage, and it is not very well tested. It surely contains quite a few bugs.
- Do you have some examples of the result?
You can find some pictures in the attached report. There's also a video on youtube:
- How can I try it out?
Partha was kind enough to create windows binaries for it on http://partha.com/. However, you can also find the source code here, where you can build it yourself on any platform:
(be sure to check out the "new_layer" branch...)
What you can see in the video above is the version that is on github and in parthas branch, so you should be able to make the exact same thing work.
- What are the hardware requirements?
In the video, I work on my (not too new) laptop, with an Intel Core 2 Duo CPU. I use a 64-bit linux and have 2 GB of RAM. The extraction of the example image takes about 10 seconds.
When I remember correctly, the algorithm should not use more RAM for bigger pictures, however it will take more time. Also, the time used for the calculation increases very fast when you have many unknown pixels, so try to mark as much as possible as foreground or background!
- How does it work?
You can see here a live demonstration of it:
Generally, you must mark as much as possible foreground and background with the respective color, then it will calculate the color and alpha value for all the unknown pixels. However, this takes very long if there are many unknown pixels, and is also not very accurate. Therefore you can set in the gui that it only starts the real algorithm after you marked a certain amount of pixels (like 70%). Once that happened, it will calculate the unknown pixels and show the result in the same preview colors. Upon pressing enter, a new layer gets created with the extracted image. It contains the calculated foreground colors and the alpha values.
- Will it be merged into mainline gimp?
I contacted the authors of gimp about that. The main problem is that this was our first real gimp project, and we used the old foreground extraction tool as guide. However, this used depreciated functions (more specifically, we have all only 8-bit colors and we do not use gegl).
To get it included into upstream gimp, all of this would have to adapted first.
- Is it still under active development?
Currently, not really. Right now, I'm updating it to the newest available gimp version. Beyond that, I'm not sure how much time I'll have to work on it myself. I would love to do it, and then also see it in the "real" gimp, but I can make no promises.
However, if anyone is interested in working on it, I'll be glad to explain what we did and how we did it, so that someone else can also work on the project.
So long, thanks for your interest in our branch. If you have more questions, just write in the forum or contact me: firstname.lastname@example.org
Last edited by rggjan on Tue Sep 20, 2011 5:12 am, edited 1 time in total.