Basically it uses a filtering rule in the HSV color space.Īs you mentioned, the hair and some boundary pixels presents colors mixed with green. The step 1 simply converts green pixels to transparency. There is no technology specification so I used Java and Marvin Framework. Since you didn't provide any image, I selected one from the web having a chroma key with different shades of green and a significant amount of noise due to JPEG compression. The company I'm talking about above claims that they can do it by figuring out if the green area are in focus (being sharp vs blurred). Another tricky part is if it is possible to distingush between the green in the background and the same green in peoples clothes.
So I'd really like a solution where this could be done instantly while being offline from the internet.ĮDIT: My "portraits" depictures persons, which do have hair - which is a really tricky part since the green background will bleed into hair. (And no, they don't have an underpaid staff hidden away in the Philippines which handles this manually, since we're talking several thousand pictures a day.) However, this approach limits its usefulness for several reasons. Instead we have to FTP all pictures to them where the processing is done and then we FTP the result back home. The problem is that they guard their algorithm with their lives, and therefore won't sell/license their software. There actually exists a company which offers exactly this service, and if I fail to come up with a different solution we're going to use them. Commercial solutions are just fine, too.Īnd before you comment and say that it is impossible to do this automatically: no it isn't.
I'm looking around for any hints or solutions or papers on the subject. I'm looking for a way to automatically remove (=make transparent) a "green screen" portrait background from a lot of pictures.