Hola Pep:
Procesar imágenes diurnas es una tarea mucho menos exigente que las imágenes del firmamento. He de suponer que si las imágenes muestran esa dominante de color es porque la cámara está modificada. En ese caso, el problema de la desviación de color es debido principalmente a la diferencia en respuesta en cada canal.
Una buena solución sería realizar un ajuste de balance de blancos a través de la cámara, tomando como referencia un objeto blanco bajo condiciones de iluminación concretas. Sin embargo, cuando usamos el formato RAW de la cámara puede también ser muy útil ajustar el balance cromático mediante software. Para ello existen varios métodos, entre los que se encuentra el sustituir los valores de los medios tonos en cada canal RGB por los de la mediana:
http://www.astrosurf.com/astro35mm/articulos/histogramas2.htm . El problema es que este ajuste se basa en una distribución no lineal de los valores de cada píxel, y aunque en imágenes diurnas puede dar resultados aceptables, no es ni mucho menos el mejor método para imágenes astronómicas, ya que este ajuste dependerá siempre del brillo de un píxel. Para evitar este problema dicho ajuste debería realizarse siempre de una forma completamente lineal, es decir, multiplicar cada canal de color por una valor constante. Esto es una corrección lineal de color, porque afecta igualmente a todos los píxeles de cada canal, independientemente de su brillo.
De todas formas, PixInsight Standard permite realizar el ajuste comentado más arriba mediante este sencillo script:
var w = ImageWindow.activeWindow;
var v = w.currentView;
if (w.isNull) {
throw Error ("No active window!");
}
if (3 != v.image.numberOfChannels) {
throw Error ("Don't know how to work with images that don't have 3 channels");
}
var medians = new Array;
function get_medians() {
for (var i = 0; i < 3; i++) {
v.image.selectedChannel = i;
medians[i] = v.image.median();
}
v.image.resetSelections();
}
function stretch() {
var p = new HistogramTransform;
p.H = [
// shadows, midtones, highlights, ext_shadows, ext_hilights
[0.00000000, medians[0], 1.00000000, 0.00000000, 1.00000000], // R
[0.00000000, medians[1], 1.00000000, 0.00000000, 1.00000000], // G
[0.00000000, medians[2], 1.00000000, 0.00000000, 1.00000000], // B
[0.01000000, 0.87500000, 0.99000000, 0.00000000, 1.00000000], // RGB/K
[0.00000000, 0.50000000, 1.00000000, 0.00000000, 1.00000000] // alpha
];
p.executeOn (v);
}
get_medians();
stretch();
Para ejecutarlo debes copiar y pegar el código en el editor de script desde
File>New>JavaScript Source File (js.) y ejecutarlo mientras tienes la imagen activa mediante el comando F9 (
Execute>Compile & Run)
Por otro lado, PixInsight Standard dispone también de algunas herramientas que permiten realizar un ajuste de corrección lineal del color. Una de ellas es
ChannelMatch, en la que puedes ajustar fácilmente los factores de corrección lineal en cada canal RGB.
LRGBCombination también permite esta modificación cuando se combinan los canales, permitiendo además mantener un rango uniforme. Por último puedes realizar fácilmente la misma operación desde
PixelMath utilizando una expresión de este tipo:
0.983 * $target[0]
0.870 * $target[1]
0.955 * $target[2]
donde 0.983, 0.870 y 0.955 corresponden con los factores de corrección. Al utilizar estas expresiones desde la interfaz de
PixelMath deberás siempre desactivar la opción
Use a single expression for all channels. Por último la opción
Reescale result deberá estar activada o desactivada dependiendo de cómo quieras redistribuir los valores a lo largo del rango dinámico.
Espero te sea de ayuda.