Fotografiando en zonas con contaminación lumínica
por Alejandro Tombolini
Introducción
Imagen de Scott publicada en Image Processing Challenges - Una imagen con mucho ruido y falta de señal - Notas principales: Contraste con Adaptive Stretch protegiendo con una máscara especial RangeMask y reducción de ruido. Fecha: Septiembre de 2013.
Procesamiento
Esta imagen resulta muy difícil de procesar debido a la falta de información y al alto nivel de ruido, y lo más recomendable para hacer es definitivamente tener más tiempo de exposición para aumentar la relación señal ruido.
No podemos esperar un buen resultado en este procesamiento, sin embargo me gusta explorar cómo las diferentes herramientas de PixInsight funcionan y es muy útil para aprender.
Para reducir el gradiente uso la herramienta DynamicBackgrounExtraction colocando las muestras cuidadosamente excluyendo las estrellas.
Seleccionar una pequeña vista previa del fondo del cielo para ser usada como imagen de Reference en la herramienta BackgroundNeutralization.
ColorCalibration usando la misma vista previa como imagen de referencia y la imagen completa como imagen de referencia para el blanco. Notar que he deseleccionado la detección de estructruras.
Se pueden ver bandas horizontales y verticales, entonces aplico CanonBandingReduction primero horizontalmente y luego roto la imagen con FastRotation 90° en sentido horario y aplico nuevamente. Finalmente vuelvo a rotarla en sentido antihorario.
Primer estiramiento usando la herramienta HistogramTransformation.
Ahora voy a estirar la imagen de nuevo usando AdaptiveStretch con la ayuda de la mascara que estará protegiendo el fondo. AdaptiveStretch permite obtener contraste y uso la máscara ya que hay demasiado ruido y deseo evitar que se incremente cuando aumente el contraste entre areas con ruido.
La descripción de la construción de la máscara usada, como es muy larga, está al final. Ver Rangemask1.
Generar una nueva Rangemask para ser usada con InterchannelCuves protegiendo el fondo con el objetivo de incrementar la saturación en las zonas más brillantes, colocar CIE L como canal de referencia y la saturación como canal objetivo.
Reducción de ruido usando la herramienta TGVDenoise y sin usar máscara.
Protegiendo el fondo del cielo con Rangemask, aplico ExponentialTransformation.
Reducción de ruido usando MultiscaleMedianTransformation trabajando con Adaptive en las capas 1,2,3 y 4 y protegiendo las zonas brillantes con rangemask.
Reducción de rudio usando la herramienta GREYCstoration y protegiendo las zonas brillantes con rangemask.
Ajuste de curvas moviendo la luminancia para dar contraste in las áreas oscuras y protegiendo las zonas brillantes con Rangemask1.
Reducción de rudio: SCNR al canal verde.
Nuevamente CurvesTransformation para aumentar la saturación y más contraste ajustando la luminancia sin usar máscara.
Redución de ruido en crominancia usando ACDNR.
Recorte de las sombras con HistogramTransformation.
Para trabajar sobre las estrellas primero construyo una máscara de estrellas y protegiendo el fondo aplico MorphologicalTransformation en las estrellas.
Finalmente CurvesTransformation para incrementar la saturación y la luminosidad de las estrellas.
Resample e imagen final:
Dos duplicados de la imagen. En uno de ellos aplico ATrousWaveletTransform borrando la capa de 256 pixeles para tener solo las estrellas.
Con PixelMath resto "cygnus_40_60sec_clone1" de "cygnus_40_60sec_clone"
Reducción de ruido a la imagen sin estrellas con TGVDenoise.
Duplico nuevamente "cygnus_40_60sec_clone" y usando ATrousWaveletTransform elimino las capas superiores dejando solamente las de 1,2 y 4 pixeles.
Con PixelMath resto "cygnus_40_60sec_clone_clone" de "cygnus_40_60sec_clone"
Nuevamente borro las capas 1,2,3 y 4 para suavizar.
Duplico otra vez "cygnus_40_60sec_clone" y usando ATrousWaveletTransform dejo sólo las capas 1,2,3,4 y 5.
Con PixelMath resto "cygnus_40_60sec_clone_clone1" de "cygnus_40_60sec_clone".
Usando el script ExtractWaveletLayers extraigo el residual.
Con la herramienta RangeSelection genero Rangemask1 sobre el residual.