Mostrando resultados del 1 al 10 de 10

Tema: Ingeniería inversa de curvas RGB. Aplicación: virados y filtros Instagram

  1. #1
    Fecha de Ingreso
    nov 2006
    Ubicación
    Madrid (a ratos Alicante)
    Mensajes
    6.266

    Predeterminado Ingeniería inversa de curvas RGB. Aplicación: virados y filtros Instagram



    Para practicar procesado de imágenes con R (un lenguaje de procesado de datos), he escrito una rutina que calcula las curvas RGB que se usaron para pasar de una imagen inicial a su resultado:

    INICIAL


    RESULTADO


    CURVAS RGB CALCULADAS



    El proceso se puede aplicar a cualquier imagen en BN virada para copiar sus tonos, y entonces aplicárselos a una foto nuestra:

    IMAGEN VIRADA


    CURVAS RGB CALCULADAS


    VIRADO DE NUESTRA IMAGEN



    Por último he analizado dos filtros de Instagram para ver si se pueden modelar bien con curvas RGB. Viendo que el resultado es casi indistinguible del filtro Instagram diría que estos filtros son puras curvas:

    CURVAS RGB CALCULADAS


    INSTAGRAM vs CURVAS RGB CALCULADAS



    A quien le interese tiene la explicación detallada:

    Ingeniería inversa de curvas RGB con R

    Salu2!

  2. #2
    Fecha de Ingreso
    may 2017
    Mensajes
    70

    Predeterminado

    Buenas Guillermo:

    Gracias por compartir tu ejercicio de hackeo y programación.

    Me faltan muchos conocimientos para valorar la dificultad que conlleva:
    Nunca había visto código R (se que se usa para análisis estadísticos y punto)

    Yendo al apartado práctico:
    Siempre que las curvas sean estrictamente monótonas (de cara a un procesado fotográfico la mayoría lo serán), ¿se podría realizar un "copiador de efectos" que nos hiciese cualquier otro software en base a un original que le demos y al resultado que genere?
    Sería un generador curvas RGB que podemos importar a nuestro software preferido.

    Yo no soy muy de efectos de este tipo, pero podría resultar interesante, la parte sucia del backend ya la tienes hecha y se podría hasta lanzar desde línea de comandos

    Un saludo
    Siempre en manual

  3. #3
    Fecha de Ingreso
    nov 2006
    Ubicación
    Madrid (a ratos Alicante)
    Mensajes
    6.266

    Predeterminado

    No tiene dificultad, se trata de comparar cada píxel de salida con su entrada. Si un píxel en la imagen procesada vale 50, y ese mismo píxel en la imagen original vale 46, pues ya tienes un punto de la curva: (46,50). En realidad para tener muy bien definida una curva de cualquier procesado basta pasar por dicho procesado esta imagen de 16x16 píxeles:



    Si encuentras por ahí algún procesado que piensas se pueda basar en curvas, aplícaselo a ese cuadradito y pon el resultado.

    No lo he hecho por la dificultad sino para practicar con R, que tiene una notación especial con ventajas para tratar matrices (y una imagen es una matriz).

    No hace falta que las curvas sean monótonas para calcularlas, se pueden calcular siempre. Lo que digo en el artículo es que deben ser monótonas para que exista una curva de vuelta que deshaga el procesado. Es decir que para que exista una curva que de la imagen procesada restaure la original, sí que es preciso que las curvas del procesado sean estríctamente monótonas.

    Hace años hice un hackeador de tonos en formato aplicación pero ahora mismo ya no me interesa hacer programas.

    http://www.guillermoluijk.com/softwa...cker/index.htm

    Salu2!
    Última edición por Guillermo Luijk; 28/09/17 a las 20:54:27

  4. #4
    Fecha de Ingreso
    may 2017
    Mensajes
    70

    Predeterminado

    Si ya sabía yo que estaba todo inventado... X-)

    ¿No tendrás versión para Mac, verdad? O
    Siempre en manual

  5. #5
    Fecha de Ingreso
    may 2015
    Mensajes
    322

    Predeterminado

    Ostras, yo en alguna ocasión he hecho ésto "manualmente".. osea editando hasta dejar una fotografía con colores reales para saber qué revelado se le había aplicado. Y pensaba "ésto seguro que se podría automatizar".

    Por curiosidad ¿cómo se trabaja con ésta rutina? ¿Es un ejecutable sobre el que vuelcas la foto? ¿Va a tener forma de plugin para Photoshop o algo similar?

    Saludos
    Canon 6D Sigma 24 1.4 Sigma 50 1.4 Canon 85 1.2 Canon 70-200 2.8 Tamron 24-70 2.8 VC

  6. #6
    Fecha de Ingreso
    jun 2013
    Ubicación
    nosedonde del sistema nosecual
    Mensajes
    1.855

    Predeterminado

    Esto me habría venido de perlas hace un año cuando una amiga quería que le hiciera un video con fotos suyas (de Instagram y otras apps), cuyos “filtros” las habían dejado muy fastidiadas y traté de hacer que quedaran lo mejor posible pero fue mucho curro para mí y no quedaron tan bien
    Mi novia tenia un coche igual.. bueno, no era suyo era de su padre. Y no era mi novia , era una vecina que dejaba las cortinas abiertas

  7. #7
    Fecha de Ingreso
    ago 2007
    Ubicación
    Madrid
    Mensajes
    10.845

    Predeterminado

    Como siempre, Guillermo, muchas gracias por tus aportaciones. Lo voy a ver con calma, ojalá pueda entender algo...
    Canon EOS 5D y 350D | Canon EF 50 1.8 MkI, EF 70-300 IS USM | Tamron SP AF 90 (172E), SP AF 24-135 (190D) | CZ Flektogon 2.4/35 MC, Planar 1.7/50 T* | Porst MC 2.8/35, 2.8/135 | Fuji X100S


  8. #8
    Fecha de Ingreso
    feb 2010
    Ubicación
    Granollers
    Mensajes
    3.185

    Predeterminado

    Muy interesante!!!
    para quien lo sepa usar puede ahorrar dolores de cabeza al tratar de emular tonos.
    sigo el hilo, graciass
    El tiempo perdido que disfrutaste, no fue tiempo perdido.
    http://500px.com/subiyama/photos

  9. #9
    Fecha de Ingreso
    nov 2006
    Ubicación
    Madrid (a ratos Alicante)
    Mensajes
    6.266

    Predeterminado

    Cita Iniciado por Philip J Fry Ver Mensaje
    Esto me habría venido de perlas hace un año cuando una amiga quería que le hiciera un video con fotos suyas (de Instagram y otras apps), cuyos “filtros” las habían dejado muy fastidiadas y traté de hacer que quedaran lo mejor posible pero fue mucho curro para mí y no quedaron tan bien
    Es muy fácil hacer un proceso por lotes que coja todas las imágenes de una carpeta y "deshaga" los filtros marranos que se aplicaron. Pero ojo, no todos los filtros pueden modelarse bien con curvas. Yo he cogidos dos que sí, y muchos otros también, pero hay transformaciones más sofisticadas que requieren de curvas 3D (es decir, que en lugar de definir cada canal de salida en función del valor de ese mismo canal en origen, dependa de todos a la vez). También hay efectos como añadir viñeteo que pueden arruinar fácilmente tanto el cálculo de las curvas como su aplicación si no se corrige previamente ese viñeteo.

    Ésta es la definición de una Hald CLUT:



    Una "curva 3D" donde a cada combinación RGB de entrada se le asigna una combinación RGB de salida. Permiten modelar transformaciones de color más complejas que las curvas RGB simples. RAW Therapee implementa así todos sus filtros filmográficos por ejemplo.

    Salu2!

  10. #10
    Fecha de Ingreso
    jun 2013
    Ubicación
    nosedonde del sistema nosecual
    Mensajes
    1.855

    Predeterminado

    Cita Iniciado por Guillermo Luijk Ver Mensaje
    Es muy fácil hacer un proceso por lotes que coja todas las imágenes de una carpeta y "deshaga" los filtros marranos que se aplicaron. Pero ojo, no todos los filtros pueden modelarse bien con curvas. Yo he cogidos dos que sí, y muchos otros también, pero hay transformaciones más sofisticadas que requieren de curvas 3D (es decir, que en lugar de definir cada canal de salida en función del valor de ese mismo canal en origen, dependa de todos a la vez). También hay efectos como añadir viñeteo que pueden arruinar fácilmente tanto el cálculo de las curvas como su aplicación si no se corrige previamente ese viñeteo.

    Ésta es la definición de una Hald CLUT:



    Una "curva 3D" donde a cada combinación RGB de entrada se le asigna una combinación RGB de salida. Permiten modelar transformaciones de color más complejas que las curvas RGB simples. RAW Therapee implementa así todos sus filtros filmográficos por ejemplo.

    Salu2!
    Interesante, me pondré a dar un repaso y en cuanto pueda probaré lo que comentas
    Mi novia tenia un coche igual.. bueno, no era suyo era de su padre. Y no era mi novia , era una vecina que dejaba las cortinas abiertas

Marcadores

Normas de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •