Why Are My Stars Yellow or Green in an RGB Composite?

Faint stars tinted yellow-green while bright ones look fine is a processing fault, not your stars.

You combine red, green and blue stacks from a mono camera. The bright stars look right: white, blue, orange. The faint ones, which are most of the stars in the frame, all share the same yellow-green tint.

Real stars do not behave like that. The faint stars in a field are the same mix of colors as the bright ones, so when color follows brightness, the processing caused it.

The test: does color change with brightness?

Pick twenty faint stars and twenty bright ones and compare them. If the faint ones lean one way and the bright ones another, you have a brightness-dependent color error. That is the signature of a non-linear step applied differently to each channel, and each cause below is a way that happens.

Cause 1: channels stretched before they were combined

This is the most common one. Each filter’s stack is stretched on its own (by the stacker’s preview, by an auto-stretch on save, or by hand) and the stretched channels are then combined.

A stretch is a curve fitted to that channel’s own sky and signal. Red, green and blue have different sky levels, since light pollution is bright in red and faint in blue, so each gets a different curve. A faint star sits low on each curve, where the curves differ most. A bright star sits near the top, where they converge. So the faint stars pick up a tint the bright ones do not.

Fix: combine the linear stacks, then stretch the color image once. Linear vs stretched data explains why in more detail.

Cause 2: the channels do not agree on star shape

Sharpening or deconvolution applied to each channel separately, each with its own estimate of the blur, leaves the channels disagreeing about every star’s profile. Misalignment does the same thing more crudely: a star offset by a pixel in one channel gets a colored fringe on one side and a tint that depends on its size.

Fix: sharpen the combined image rather than the channels, and align the channels on their stars before combining. If one channel was shot on a different night, align it to the others rather than the others to it.

Cause 3: neutralizing a sky that is not sky

Background neutralization makes the sky gray by scaling or offsetting the channels. In a frame full of nebula, such as an emission nebula that fills the field or the Milky Way, the “sky” it measures is nebula. Neutralizing red nebula pulls red down everywhere, and faint stars, whose color is a small excess over that background, swing toward green and blue.

Fix: neutralize against the darkest real sky (the dust lanes), or skip neutralization when the subject fills the frame and balance the color on the stars instead. Processing the North America Nebula is a worked example.

A different problem: magenta stars in narrowband

Violet stars in an SHO or HOO image come from the palette itself, which is a separate effect. It is covered in purple, red and magenta stars explained and the Hubble palette guide.

What Akastroid does

From version 1.3.2, a natural-color filter-wheel composite is built from the linear stacks. Each channel is stacked without its own deconvolution, aligned on its stars, balanced on the stars, and stretched once. On a nebula that fills the frame, the display-stage neutralization that would tint the stars is skipped. On a real North America Nebula session, this took the faint stars’ tint from 0.23 off neutral to 0.015.

Sharpening channels separately is one of the causes above. For what sharpening does, and when it invents detail, see deconvolution explained.

Summary

  • Color that depends on brightness is always a processing artifact.
  • Combine linear stacks and stretch once. Never combine stretched channels.
  • Sharpen after combining, and align the channels on their stars first.
  • In a frame full of nebula, do not neutralize the nebula as if it were sky.

Also in Deutsch · Español · Français · Italiano · 日本語 · Nederlands · Polski · Português (Brasil) · Türkçe · 繁體中文

Try it on your own data

Akastroid runs its processing on your own frames and logs each step it took.

Download Akastroid