Tips & Tricks
The Problem With PixInsight Color
This tutorial shows how
PixInsight's default, 32-bit floating-point, data normalization can upset color balance and how to
The following only occurs
when PixInsight (PI) loads 32-bit floating-point data created with other
When PI loads seperate R, G and B channels, the data are set to a range of 0.0 to 1.0.
This is usually a minor problem because the darkest area of the image is
most often a neutral gray and the brightest is a star saturated to
So let us consider an image that is not this case. Although Image
1 is an extreme example, it will demonstrate the "potential" for
disastrous results in color balance.
In the above image, the darkest areas are a neutral gray. The brightest area is
the yellow star at the center. When the separate red, green and blue
channels are loaded into PixInsight, the data are scaled equally from
0.0 to 1.0 for each channel. This stretches the blue data incorrectly
relative to the other two channels.
Image 2 (CCDStack)
Image 3 (PixInsight)
Images 2 and 3 are
unprocessed views. CCDStack did not normalize the files and we can see
that the bright yellow star is still yellow. However, PI set
each color channel to a range of 0.0 to 1.0. This normalization changed the
color of the brightest star to white and the white star, near the center, is now bright blue.
The below text was taken from the PI process console. We can see that the initial high
value for the blue data is much lower than the other two channels. The
normalizing result is also unequal for the green and red channels.
Reading 3 image(s):
Rescaling sample values: [356, 10689] -> [0,1]:
Rescaling sample values: [356, 16381] -> [0,1]:
Rescaling sample values: [356, 24238] -> [0,1]:
Images 4 and 5
were processed identically. The histogram, for image five, shows how the
three color channels were not treated equally by PI. The
relationship between all three channels is modified.
By chance, Image 5 provides PixInsight with a means to nearly correct
the color. The face-on galaxy is a reasonable white reference. However,
this type of correction does not take into account galactic extinction.
This results in an image with the galaxy slightly blue. It should be
slightly yellow. The galactic extinction data show that the blue is
reduced by about 6% and the red is increased by 4%. This final
adjustment sets the color close to Image 4.
RGB created with CCDStack
and saved as a
32-bit floating-point R, G
& B FITS
for processing in Pixinsight
RGB created and processed
In images 6 and 7,
the unprocessed background level is a neutral gray of 318.
The maximum unprocessed R, G & B values are 67298,
65309 and 65821.
When PI loaded the three color channels, the normalization
set the upper values for the green and blue to match the red.
This was about a 3% increase for the green and blue.
With equal stretching, we can see that the PI
version has less vibrant reds and a loss of low-level color. The histograms show a striking
Because this image has neutral gray background areas, we again have a
means to correct the PixInsight color. By setting the black point, for
the green and blue, equal to the red, the color is corrected to a close
match with image 6.
If you use
eXcalibrator or G2V color balancing,
then you are
interested in consistency and reasonable color. You are a follower of
the CAFÉ Doctrine... that is Color As From Earth. The above PixInsight normalization can make your
Image-train calibration and color balancing efforts pointless.
Image 5 shows the potential for
problematic PI color. Without the spiral galaxy, for a white
reference, there is no objective way to correct the color. The user will
have to guess.
Some astro photographers have the desire to
assemble their images only
with PI. I feel it is better to use whatever program works best
for a particular phase of the process. Here are my suggestions for
avoiding the above-stated PI color problems.
Calibrate your images, both color and luminance, with a program that
does not normalize the data by default. I use CCDStack. Save the images
as 32-bit floating point FITS. By not using PixInsight, the data are
saved in their original format.
With the color data, I use
CCDStack to register, stack and create the RGB image. This allows
accurate use of G2V or eXcalibrator color balancing. I save the RGB
image as a 32-bit floating point FITS for loading into PI. You may also use a TIFF format. When
PI loads this image, it
does not make any changes to the color.
With luminance data, I register and stack the sub exposures with
PI. For greater precision, use the 64-bit option.
Now, with 64-bit luminance
and 32-bit color, I can best take advantage of the powerful PixInsight
For final touch up, I still
rely on PhotoShop.