GreenBG Remover

Does a matte choker actually remove a green fringe, or just hide it?

It hides it. A choker edits only the alpha channel, so the green stays in the RGB: the pixels it removes take their hair with them, and the pixels left behind are exactly as green as they were. Measured on the keyer running on this page at default settings, choking the matte to 0.50 cut 21% of the visible green while deleting a fifth of the fine hair strands; pulling the green out of those same pixels cut 42% at the default despill setting and 100% at full strength, with the matte untouched.

What a choker can and cannot touch

A matte choker is a geometry operation: it shrinks or erodes the matte, the alpha channel, so the semi-transparent rim around the subject gets narrower or disappears. It never touches colour. Whatever green the camera recorded in a pixel stays in that pixel's red, green and blue values however far you choke.

Over a neutral background the split is exact. The displayed colour is alpha × pixel + (1 − alpha) × grey, and grey contributes equally to all three channels, so the green you actually see is alpha × (G − max(R,B)). Two levers, then: lower the alpha, or lower the green stored in the pixel. A choker has only the first.

In the keyer on this page that is visible in the source: the mask is computed from each pixel's distance to the key colour, alpha is written last from that mask, and the spill controls rewrite the green channel afterwards without re-reading it. No alpha edit can change how green a pixel is, and no despill can change the shape of the edge.

Where the fringe actually sits

At the defaults — Tolerance 42, Edge softness 14 — the sliders become a radius of 0.21 in normalized RGB distance and a knee 0.049 wide, so the soft band runs from 0.161 to 0.259. Closer than that counts as background, beyond it as subject, and in between as partially transparent.

Brown hair (#4A3728) sits 0.567 from the key colour #00B140. An anti-aliased edge pixel is a linear blend of hair and screen, so its distance to the key colour is its hair coverage times that number — the band is not a fixed number of pixels but the slice of the edge that is 28.4% to 45.6% hair. Below 28.4% is deleted as background; above 45.6% is solid.

In a 480×360 test frame built from an anti-aliased head and 70 fine strands, that slice is 1162 pixels with a mean green excess of 77.6 out of 255, peaking at 83.4, displaying a mean of 32.3 over mid grey. Most of the damage is on the inner side: pixels at alpha 0.5 or above carry 65% of the visible green, because a nearly opaque pixel shows all the green it holds while a nearly transparent one shows almost none of it.

Blonde hair is worse, not better. #D8C39A sits 0.920 away, so the same band maps to 17.5%–28.1% coverage: the key discards more of every strand before a choker touches it, and the ring left behind holds more green, at a mean excess of 96.7.

Measured: what choking buys

Remap alpha so everything below a threshold disappears — the standard choke — and the green leak moves like this on that frame: 0.15 removes 7% of it, 0.30 removes 14%, 0.50 removes 21%, and 0.90, which leaves little but the core of the subject, removes 35%.

The surviving rim gets greener, not cleaner. Its mean displayed green excess rises from 32.3 to 40.2 at threshold 0.50, because what is left is the inner, more opaque half of the band — the half that was doing most of the damage. A choker deletes the pixels you could least see and keeps the ones you could.

The cost lands on thin detail. Of the 5946 pixels whose true hair coverage is 5%–60% — the fine strands — 18.1% are still drawn at alpha 0.5 or better before choking, 16.4% after 0.30 and 14.8% after 0.50. That is roughly one unit of hair per unit of fringe: a fifth of the strands gone to buy a fifth of the green.

Measured: what eroding buys, and what it leaves instead

Erosion, the other half of a choker, is far more effective and far more destructive: one pixel removed 92% of the visible green in the same frame, two removed 99%.

But the band moves inward rather than vanishing. After one pixel of erosion the pixels now in the soft band average 33.1 green excess instead of 77.6; after two, −8.3 — no longer edge pixels at all, just subject pixels that erosion made partially transparent. What you have is a one-to-two pixel translucent rim around the whole silhouette, showing the new background through the edge of the subject. The green is gone; the halo is not.

The price: hair coverage retained falls from 98.6% to 96.4% at one pixel and 94.3% at two, and the share of strand pixels still drawn at alpha 0.5 or better drops from 18.1% to 1.0%. One pixel of erosion deletes 94% of the fine hair in the frame.

What removes the green instead

The control that removes green works on colour. Spill suppression is a green-channel limiter: where green exceeds the larger of red and blue it is pulled back towards it, so g becomes max(r,b) + (g − max(r,b)) × (1 − amount). At the default 35, with Despill desaturate at 10, the ring's mean green excess falls from 77.6 to 45.4 — a 42% cut with the matte unchanged.

At 70 the cut is 73%; at 100 the leak is gone entirely, and hair coverage retained is identical to the un-despilled key, because alpha was never edited and nothing was deleted. A choker trades subject for fringe; despill trades saturation for fringe.

Not free either — it fires wherever green leads, including clothing that was legitimately green. At the default settings an olive jacket at (107,122,58) loses 6.2 levels of green and a green shirt at (60,140,70) loses 29. Brown hair and skin lose nothing, because there green already sits below max(r,b).

A two-background test that picks the lever for you

Drop the cutout on a dark background, then a light one, and watch the rim. If it changes brightness with the background it is translucent — an alpha problem, and the one case where choking is the right tool. If it stays green on both, it is a colour problem and despill is the only thing that will move it.

The test falls straight out of the identity above: displayed green is alpha times stored green, so a rim that tracks the background is carried by the alpha term, and one that ignores the background is carried by the stored colour.

The order to work in

1. Tolerance — up only until the background is gone, then stop. Past that it eats the subject, not the fringe.

2. Spill suppression, then Despill desaturate — where a fringe actually dies. Raise spill until the rim turns neutral.

3. Edge softness — a little puts back the transition keying removes, so the edge does not read as cut with scissors.

4. Choke last, and only for what survives — compression junk sitting away from the subject, or a matte that grew larger than the subject because tolerance was pushed. Shape problems are the one thing a choker genuinely fixes.

Related questions

Is a matte choker the same thing as raising tolerance?

No. Tolerance widens the radius around the key colour and decides which pixels are background at all — push it far and the fringe goes along with the hair tips. A choker acts afterwards on the matte and only changes how opaque surviving pixels are. In the measurements above, tolerance decides where the 28.4%–45.6% coverage band falls; a choker decides how much of that band stays visible.

Why does choking eat hair but barely touch a shoulder?

Because alpha is coverage. A pixel in the middle of a shoulder is fully subject at alpha 1, so a choke hardly moves it. A pixel on a fine strand is a blend — strand pixels in the test frame average 0.193 alpha — so any threshold above that deletes the strand outright. Thin detail has no alpha headroom to give.

Should I choke before or after despill?

After. Despill first so the pixels that survive are already neutral, then erode only what is still wrong. Choke first and you delete pixels despill was about to fix: in the measurements, despill plus a 0.50 choke cut only 21% more green than despill alone, and paid for it in strands.

Does this remover have a matte choker?

No erode or choke control, and that is deliberate. Tolerance and Edge softness shape the soft band, Spill suppression and Despill desaturate do the colour work, and every number on this page was measured by running the keyer in this page's own source on a synthetic anti-aliased edge whose true coverage is known. Nothing here can silently delete hair.

Open the green screen remover