OJODIGITAL

 
perfectRAW/perfectBLEND Foro para tratar todo lo relacionado con estos dos programas basados en DCRaw para el revelado de imágenes RAW y el blending de imágenes para aumentar su rango dinámico

Respuesta
  #1 (permalink)  
Antiguo 07-jun-2008, 13:23
Avatar de ManuelLlorens
Habitual
 
Fecha de Ingreso: abril-2008
Ubicación: Madrid
Mensajes: 515
Enviar un mensaje por MSN a ManuelLlorens
Eliminación de artefactos de interpolación

Esta entrada está desactualizada y ha sido eliminada.
__________________
Manuel Llorens
Olympus E-510, E-300
Mis fotos

Última edición por ManuelLlorens; 24-nov-2008 a las 12:12.
Responder Citando
Publicidad
  #2 (permalink)  
Antiguo 08-jun-2008, 14:26
Avatar de ManuelLlorens
Habitual
 
Fecha de Ingreso: abril-2008
Ubicación: Madrid
Mensajes: 515
Enviar un mensaje por MSN a ManuelLlorens
Podéis olvidaros de todo lo anterior . Al final, y después de muchas, pero que muchas, pruebas en el día de ayer, lo mejor viene al día siguiente. No hay como dormir para aclararse las ideas.

Entre las pruebas de ayer hubo de todo, incluso acabé creando mi propio algoritmo de interpolación, CPM, de Color Propagation Maps. No es que sea muy potente pero algún día lo mejoraré. Los resultados están entre el bilineal y el VNG en cuanto a definición, aunque es bastante más rápido que VNG y trabaja con 4 colores. Si lo consigo optimizar para que sea más rápido podría ser el algoritmo de interpolación por defecto en vez del bilineal, al menos para las Olympus y Panasonic (en bilineal también se ven las cosas mal debido a los canales verdes). Lo importante es que me ha convencido de que es imposible obtener la definición de PPG y AHD utilizando cuatro canales (necesitaba comprobarlo para quitarme esa espina. Ahora tengo claro que no se puede interpolar bien sin equilibrar antes los canales verdes... aunque tengo alguna idea que ya probaré cuando acabe este proyecto). Necesitamos el canal verde completo con G1 y G2 porque es el que tiene mayor distribución espacial como punto de partida para interpolar los rojos y azules (uno de cada dos píxeles de la imagen es verde).

El problema viene cuando no podemos asimilar los dos canales verdes, G1 y G2, como un sólo canal por su diferencia de señal, lo que provoca los laberintos. La adaptación global de las señales de G1 y G2 se ha demostrado bastante eficaz, pero insuficiente, probablemente como consecuencia del ruido o de pequeñas alinealidades del sensor de la cámara. Así que el único remedio que queda es adaptar localmente la señal de los canales verdes antes de asimilarlos como uno sólo para mandarlos a interpolar con PPG o AHD.

Ayer probé con varios métodos, a cada cual más peregrino. Arriba tenéis los resultados de mis pruebas. Finalmente he encontrado el método perfecto, que además es el más lógico (pero eso sólo lo he visto después de dormir esta noche ).

A partir de ahora habrá por tanto las siguientes únicas opciones:
  • SIN EQUILIBRAR
  • EQUILIBRADO GLOBAL
  • EQUILIBRADO GLOBAL+LOCAL
El único parámetro especificable es el TAMAÑÓ DE CELDA para el equilibrado local, que por defecto es de 8 píxels, con lo que se toma una celda de 16 píxels (de momento cuadrada, pero cuando optimice y retoque el código será circular, aunque no cambiará mucho el resultado) alrededor de cada píxel verde. Lo que hace después es equilibrar el valor del píxel según el valor medio de los canales verdes dentro de la celda, usando previamente una interpolación de cada canal verde de modo que contribuyan por igual los dos canales al cálculo. Viendo los resultados que se obtiene con 8 píxeles no veo ningún motivo para usar un radio diferente.

Como siempre, se descartan en el cálculo los píxeles saturados y tampoco se modifican los píxeles saturados ni en el equilibrado global ni en el local.

Ahora mismo el algoritmo es un poco lento, especialmente si se especifica un TAMAÑO DE CELDA grande, como es lógico. Con el valor por defecto 8 los resultados son inmejorables, incluso en ejes, gradientes, zonas saturadas, texturas difíciles...

Entiendo que a los puristas os dé un poco de respeto hacer modificaciones locales, pues se podría pensar que eso estropea la imagen de algún modo. Os garantizo que elimina los laberintos al 100%, no modifica la textura ni el detalle de la imagen ni un mínimo (y si parece cambiarla es porque los laberintos pueden parecer textura), no cambia el balance de blancos, no cambia los bordes y no añade un sólo artefacto nuevo (con un TAMAÑO DE CELDA muy pequeño se ganará en velocidad, pero sí puede introducir pequeños artefactos). La única pega que tiene hoy por hoy es que es lento, espero poder acelerarlo. También crea algunos artefactos en los límites de la imagen, donde la celda no cabe entera, pero eso es fácil de solucionar no quitando laberintos localmente en los bordes de la imagen. Son pequeños detalles.

Yo creo que los ejemplos que os pongo abajo hablan por sí solos. También creo _GUI_ que ahora sí sería interesante enseñarle los resultados a Coffin.

El último ejemplo es de mi E-510, los otros cuatro de mi E-300 (mucho más propensa a generar laberintos, y probablemente también la E-500 que comparte el sensor). Van en los tres casos, el primero con AHD sin reducción de laberintos, el segundo con reducción global+local con radio de celda 8 y el tercero con VNG-4. Los usuarios de Olympus/Panasonic, sin la reducción de laberintos nos tendríamos que conformar con la primera o con la última de las imágenes.

De la E-300 (AHD, AHD sin laberintos, VNG-4):




De la E-300 (AHD, AHD sin laberintos, VNG-4):




De la E-300 (AHD, AHD sin laberintos, VNG-4):




De la E-300 (AHD, AHD sin laberintos, VNG-4):




De la E-510 (AHD, AHD sin laberintos, VNG-4):




Un saludo:
__________________
Manuel Llorens
Olympus E-510, E-300
Mis fotos

Última edición por ManuelLlorens; 08-jun-2008 a las 16:55.
Responder Citando
  #3 (permalink)  
Antiguo 08-jun-2008, 14:46
Avatar de _GUI_
Gurú Ojodigitalero
 
Fecha de Ingreso: marzo-2006
Ubicación: Madrid (a ratos Alicante)
Mensajes: 6.339
Enviar un mensaje por MSN a _GUI_
Si he entendido bien antes igualabas el nivel medio de G1 al de G2 calculando unos factores a partir de los valores medios de G1 y G2 en celdas de 16x16 píxels, que aplicados previamente al balance de blancos global, hacen que el nivel medio de los dos canales G fuera el mismo en dichas subceldas. Luego se aplicaba un balance de blancos global con idéntico multiplicador para G1 y G2. Esto provocaba que los píxels de las zonas más cercanas a los bordes de cada celda no estuvieran tan bien corregidos y aparecieran artefactos donde había transiciones fuertes de color.

Ahora lo que haces es para cada píxel G calcular el nivel medio de G1 y G2 en una celda cuadrada centrada en el píxel en cuestión, y corriges el nivel G del píxel en cuestión por el factor que igualaría dichos niveles medios de G1 y G2 en la celda, no?. Hecho esto se aplica el balance de blancos global con idéntico multiplicador para G1 y G2.

Cómo de lento va? cuánto tarda para toda la imagen? lo digo porque como vaya esto irá el anti-ghosting de perfect Blend que te comenté.

Me piro al Retiro!
__________________
"En ocasiones veo halos."

Canon EOS 350D | EOS 300 | 10-22 | 24-70 f2.8L | 70-200 f4L | 300 f4L IS
http://www.guillermoluijk.com para suscribirte pulsa aquí
Responder Citando
  #4 (permalink)  
Antiguo 08-jun-2008, 16:26
Avatar de ManuelLlorens
Habitual
 
Fecha de Ingreso: abril-2008
Ubicación: Madrid
Mensajes: 515
Enviar un mensaje por MSN a ManuelLlorens
Cita:
Iniciado por _GUI_ Ver Mensaje
Si he entendido bien antes igualabas el nivel medio de G1 al de G2 calculando unos factores a partir de los valores medios de G1 y G2 en celdas de 16x16 píxels, que aplicados previamente al balance de blancos global, hacen que el nivel medio de los dos canales G fuera el mismo en dichas subceldas. Luego se aplicaba un balance de blancos global con idéntico multiplicador para G1 y G2. Esto provocaba que los píxels de las zonas más cercanas a los bordes de cada celda no estuvieran tan bien corregidos y aparecieran artefactos donde había transiciones fuertes de color.
Empecé por ahí, luego lo hice en celdas 2x2 (un píxel raw) y he acabado...

Cita:
Iniciado por _GUI_ Ver Mensaje
Ahora lo que haces es para cada píxel G calcular el nivel medio de G1 y G2 en una celda cuadrada centrada en el píxel en cuestión, y corriges el nivel G del píxel en cuestión por el factor que igualaría dichos niveles medios de G1 y G2 en la celda, no?. Hecho esto se aplica el balance de blancos global con idéntico multiplicador para G1 y G2.
... exactamente así.

Cita:
Iniciado por _GUI_ Ver Mensaje
Cómo de lento va? cuánto tarda para toda la imagen? lo digo porque como vaya esto irá el anti-ghosting de perfect Blend que te comenté.
Con 16x16 píxeles unos 2 segundos en una imagen de 8 Mpx. Pero no está nada optimizado.

Cita:
Iniciado por _GUI_ Ver Mensaje
Me piro al Retiro!
Ya me dirás qué has comprado.

Un saludo:
__________________
Manuel Llorens
Olympus E-510, E-300
Mis fotos

Última edición por ManuelLlorens; 08-jun-2008 a las 16:42.
Responder Citando
  #5 (permalink)  
Antiguo 10-jun-2008, 20:34
Avatar de ManuelLlorens
Habitual
 
Fecha de Ingreso: abril-2008
Ubicación: Madrid
Mensajes: 515
Enviar un mensaje por MSN a ManuelLlorens
He optimizado el algoritmo y ahora es bastante más rápido (yo creo que es perfectamente utilizable) y una pizca más preciso (pero seguro que si Coffin lo coge algún día lo pone patas arriba y lo deja mucho más rápido y preciso).

Un saludo:
__________________
Manuel Llorens
Olympus E-510, E-300
Mis fotos
Responder Citando
Respuesta

Marcadores

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Activado
Ir al Foro