My own test screen is intentionally poor: A terribly cheap camera, an ill-hung backdrop and an appalling lighting set up. The filter doesn't handle it perfectly, but that it produces results as well as it does is an achievement with such a poor input.

I have experimented with some ideas for a chroma-key-like filter that should be able to handle well even very poorly-built backdrops.

This filter is not actually a chroma key but something similiar in use and less well-known: A difference matte or difference key filter. Unlike a chroma key, a difference matt is keyed to a reference image rather than color - allowing it to function without a uniform backdrop behind. This allows it to function even when using a very ill-hung, ill-lit and uneven screen - or even no screen at all, providing the space behind the actor is motionless. This ability comes at the expense of camera mobility: For it to work, the camera must be fixed in place.

The filter is called 'budget bluescreen' because that is the intended purpose: An ultra-low cost alternative to the bluescreen in amateur or low-budget production. Though a difference matte is nothing new (Even Photobooth on OSX comes with one built-in), budget bluescreen incorporates a delta function quite resistant to cast shadows, as well as some some mask filtering techniques which do a reasonably impressive job of correcting errors in the initial mask. This makes it well-suited to use in cramped conditions. A downside to these processing steps is the requirement of a binary mask only: This cripples the filter's ability to handle transparent materials and soft edges like hair. If you just want to put your cardboard-costumed spaceman on the surface of an alien world or make a weather report, it'll do exactly what you need.

I've released the program and source, but this is a proof-of-concept for the algorithm rather than a well-refined piece of software. It isn't portable (you might get it to compile for Windows), it doesn't give you a nice interface, and you'll need to convert your video into a folder-full-o-bitmaps for it to read. If you seriously plan to use this for anything, contact me so I'll have some motivation to keep working on it.