¿Cómo aplicar la codificación de croma (eliminar la pantalla verde)?

¿Es posible aplicar chroma key, es decir, eliminar un fondo de pantalla verde (o azul...) usando Gimp? (Uso Gimp, pero supongo que una respuesta usando Photoshop sería igual de buena, a menos que haga referencia a un complemento específico de Photoshop).

Lo que quiero decir es lo siguiente:

ingrese la descripción de la imagen aquí

(Nota: aún no sé cómo hacerlo, esta maqueta se hizo a partir de una imagen transparente de stock).

Si nos fijamos en lo que hay que hacer (o aproximarse en la medida de lo posible, ver más abajo) es lo siguiente:

ingrese la descripción de la imagen aquí

Observe cómo este procedimiento no es simplemente agregar un canal alfa; está cambiando todos los colores que se encuentran en el mismo cuadrante que el color clave en sí. Es decir, si el color clave es verde, todos los colores verdosos deben modificarse sustancialmente, además de agregar un canal alfa adecuado:

ingrese la descripción de la imagen aquí

La razón por la que publiqué esta pregunta es que todas las demás preguntas y respuestas sobre este tema pasan por alto este punto crucial.

No puede convertir un tono de verde en rojo semitransparente y otro tono de verde en azul semitransparente, simplemente jugando con la varita mágica, la herramienta de selección de color o copiando un canal en una máscara.

No conozco los antecedentes teóricos detrás de la codificación de croma y supongo que podría ser bastante peludo. Por ejemplo, el color que se encuentra exactamente entre el color clave (verde en este caso) y su opuesto exacto (que sería magenta en este caso) es un gris perfecto (por definición de color opuesto). ¿Necesitamos cambiar ese tono? de gris a magenta semitransparente? ¿Y si fuera un gris real en la imagen original? (Lo que en realidad es más probable.)

Dado todo este comportamiento indefinido en el espacio del problema en sí, estoy seguro de que Adobe Premiere y todas las demás herramientas profesionales de producción de video contienen algoritmos de codificación de croma muy sofisticados.

¿Podemos siquiera aproximarnos al resultado de esos algoritmos utilizando la manipulación básica de imágenes, como se encuentra en Gimp? ¿O cualquier esfuerzo de este tipo está condenado al fracaso?

Alternativamente, ¿hay un complemento Gimp de código abierto o un programa separado que pueda realizar una codificación de croma de buena calidad en las imágenes?

Editar: el artículo de Wikipedia brinda un ejemplo de una función simple para la pantalla verde: rgb(r,g,b) -> rgba(r, min(g,b), b, A*(r+b)-B*g)y continúa explicando que los algoritmos modernos pueden ser mucho más complicados. Incluso con la función simple, entiendo lo que dice, pero no sabría cómo realizarla usando selecciones simples y manipulación de canales.

¿Por qué pantalla verde? Hay mejores formas de eliminar fondos tanto en GIMP como en Photoshop. GIMP y Photoshop no son editores de video. La pantalla verde se usa principalmente en video.
@BillyKerr Porque ya tengo imágenes originales contra una pantalla verde y necesito separar el primer plano. Lo he intentado con las técnicas habituales (varita mágica y demás) pero se pierden la zona sustancial donde se mezclan los dos colores, como muestro arriba. Hollywood demuestra que este resultado se puede lograr, o aproximar, y lo ha sido durante un siglo utilizando películas. Y entonces debe haber formas de hacerlo en el procesamiento de imágenes digitales.
@BillyKerr "Bueno para video pero no para fotografía" no tiene sentido, ya que el video no es más que una secuencia de fotografías. Mi pregunta no es sobre cómo tomar buenas fotos (ni siquiera tengo una cámara). Mi pregunta es sobre el procesamiento de imágenes digitales.
Quiero decir que es mejor para video que para fotografía. Los fondos neutros son los preferidos en la fotografía fija. Si alguna vez has trabajado en un estudio, lo sabrías. Tengo, y la pantalla verde no es óptima.
Una vez más, no tengo control sobre las imágenes de origen. Esta es una pregunta técnica sobre la manipulación de imágenes, no una pregunta sobre cómo tomar buenas fotografías.
Si lo se. Solo digo que está buscando algo que se usa comúnmente en la edición de video, pero que usa un software diseñado para editar fotos fijas, que generalmente nunca usa la pantalla verde. ¿Ves el problema aquí? No digo que no sea posible, simplemente no es óptimo.

Respuestas (3)

Obviamente, su cuero cabelludo con fondo verde presenta bien sus imágenes problemáticas: grandes áreas donde el verde se mezcla con el cabello:

ingrese la descripción de la imagen aquí

Desafortunadamente, no hay forma de calcular exactamente el color original de las áreas de mezcla porque no sabemos si se mezcló debido a la transparencia (= más pelos transparentes cerca de los bordes) o si originalmente no tenía un fondo verde teñido a más verde en los bordes que en medio del cuero cabelludo. Debemos hacer una conjetura.

En tu imagen de "lo que se debe hacer" adivinaste que las franjas horizontales de color continúan con el mismo tono y saturación, pero la transparencia aumenta a medida que el color se acerca al verde puro. En realidad, no lo adivinó, construyó las franjas de esa manera, pero un autómata tonto sin inteligencia de inteligencia artificial no puede saber cómo se construye una imagen. Solo ve el resultado de la mezcla píxel por píxel sin tener idea de qué tipo de proceso de creación común podría haber detrás de diferentes píxeles. Necesitas algo mucho más avanzado que GIMP si quieres tener alguna habilidad para adivinar.

Para permanecer en la verdad, sus rayas de colores se recuperarían bastante bien con el siguiente proceso porque el programador ha pensado de la misma manera que usted, como si el color no deseado solo estuviera allí debido a la transparencia.

El proceso: el verde se puede convertir en transparencia aplicando Colores > Color a Alfa.

Este es el resultado con tus rayas:

ingrese la descripción de la imagen aquí

El siguiente es un resultado más realista: el fondo se mezcla con el objetivo de forma compleja. No es pura transparencia lineal:

ingrese la descripción de la imagen aquí

Los controles deslizantes de umbral ahora se configuran de forma bastante aleatoria. Las áreas que son de color verde puro, solo que más oscuras que el fondo son magenta. Las áreas que estaban demasiado lejos del verde puro, pero que aún son verdes, están "tal cual". El verde desaparece, pero el rojo y el azul aumentan si se mueve el control deslizante del umbral de opacidad:

ingrese la descripción de la imagen aquí

No se pueden encontrar buenos umbrales. El otro control deslizante recortaría el cabello. Pero puedes colorear la imagen. Si su cerebro tiene más potencia que la habitual, puede usar el mezclador de canales (Colores > Componente > Mezclador de canales). me lo salto

En su caso, una recoloración de un solo tono puede ser aceptable. Elija de la imagen original una muestra bien saturada y rellene con ella una nueva capa superior. Deje que esa capa tenga el modo de fusión Color LCH. Hay otros modos de fusión de "color", pero Color LCH encaja en este caso porque copia el tono y el croma de la muestra:

ingrese la descripción de la imagen aquí

fusionar las capas si el color es bueno.

Puede desaturar las áreas dispersas como en el original haciendo un duplicado, desaturando la copia inferior y borrando parcialmente con un pincel suave la capa superior coloreada. O preferiblemente insertando una máscara de capa para corregir fácilmente en caso de errores.

La pantalla verde no es óptima para la fotografía fija. Es bueno para video porque es una excelente técnica rápida para procesar miles de fotogramas. En fotografía fija, este no es el caso. En cambio, es problemático. La pantalla verde generalmente tiene problemas que es mejor evitar por completo. En la fotografía fija, por ejemplo, se suelen preferir los fondos neutros para evitar el problema de la contaminación del color. Software como Photoshop y GIMP tienen herramientas de eliminación de fondo que se pueden usar para hacer una buena máscara sin tener que recurrir al uso de pantalla verde.

En cuanto a resolver el problema con el que pareces haberte encontrado, tendrás que pasar por algunos obstáculos adicionales.

Puede usar el canal verde para crear una máscara e invertirla y ajustar los niveles de la máscara, pero esto no resuelve el problema de la contaminación del color. Es casi imposible que el enmascaramiento solo elimine la contaminación del color.

aquí hay un ejemplo

ingrese la descripción de la imagen aquí

Si la imagen hubiera estado en cambio sobre un fondo gris neutro, este problema no habría existido. Una simple máscara habría sido lo suficientemente buena.

Para solucionarlo, deberá refinar aún más la máscara para eliminar la contaminación del color, a riesgo de perder detalles, o pintar sobre los bordes de la imagen original para eliminar el verde. Ninguna es una gran solución, aunque la última opción es probablemente su mejor apuesta.

En este ejemplo, tomé una muestra de un color marrón del cabello y usé el pincel con el modo de fusión configurado en Color HSL para pintar sobre los bordes. El resultado no es malo, pero sería más difícil con una imagen más compleja con diferentes colores.

ingrese la descripción de la imagen aquí

Gracias. Usar el canal verde como base para una máscara y pintar con el modo de fusión de colores son técnicas que ya he usado en el pasado, pero como dices, se vuelven más difíciles con imágenes complejas. Tenía la esperanza de encontrar un complemento o una técnica que replique lo que el software de video ya hace en cada cuadro, lo que suele ser bastante bueno.
Por bastante bueno quiero decir que todos los usuarios de YouTube usan pantallas verdes e iluminación más o menos improvisada, y rara vez se ven halos verdes a su alrededor, por lo que las opciones de pantalla verde predeterminadas que se encuentran en los editores de video deben ser bastante buenas.
@Tobia Solía ​​​​haber un complemento para GIMP llamado Blue Box, que podría usarse para fondos de clave de croma verde / azul, pero no resuelve el problema de la contaminación del color. No tengo idea de dónde puede encontrarlo ahora, o incluso si aún funcionaría en versiones recientes de GIMP. Photoshop tiene un control deslizante de color descontaminado en el espacio de trabajo Seleccionar y aplicar máscara. Hace lo mismo que pintar sobre los bordes de la imagen, aunque más automatizado, aunque no siempre funciona bien en casos extremos.

AGREGAR: El interrogador ha insertado un comentario que dice que esta respuesta es inútil. Sus fotos tienen zonas coloreadas donde se mezclan los colores de fondo y de destino y no va a volver a tomar sus imágenes de una manera que permita eliminar fácilmente el fondo.

======

Puede aplicar el ajuste Color a alfa. PERO: La imagen no debe tener una zona de borde donde se mezclen el color del material del borde y el color clave. Afortunadamente, la zona de 1 píxel de ancho se puede eliminar más tarde si el objetivo en la imagen es lo suficientemente grande en píxeles. Las amplias zonas mixtas necesitan adivinar o saber qué colores debe haber. No se puede calcular sin grandes suposiciones.

Si va a tomar sus propias fotos, debe tener una luz de primer plano blanca tan fuerte y uniforme que el fondo del color clave no afecte los colores de los bordes del objetivo. Las lentes borrosas y la compresión JPG también son malas.

Muchas herramientas de eliminación de fondo basadas en color se anuncian con un ejemplo de lo bien que cortan el cabello sin retoques manuales. No sucede sin una cámara de calidad profesional, luces perfectas y un fondo de un solo color uniformemente iluminado. A veces una playa soleada ofrece la luz y el fondo. La arena refleja la luz ==> no hay sombras profundas y el cielo azul es un buen fondo de un solo color que seguramente está tan lejos que la luz de primer plano + el objetivo no crean sombras en el fondo.

He sugerido aquí varias veces para objetos estáticos otro enfoque. Tome 2 tomas con una cámara que seguramente no se mueva (= tenga un trípode profesional). Realice la toma 1 para obtener una silueta oscura contra un fondo brillante y otra con las luces brillantes de primer plano ENCENDIDAS. Construye una máscara a partir de la silueta.

Entiendo lo que dices, pero te estás perdiendo el punto de mi pregunta. No tengo control sobre las imágenes de origen, y el problema es exactamente la zona donde se mezclan los dos colores. Hollywood demuestra que este resultado se puede lograr, o aproximar, y lo ha sido durante un siglo utilizando películas. Y entonces debe haber formas de hacerlo en el procesamiento de imágenes digitales.
@Tobia Hollywood no tiene problemas con las luces, el fondo y la calidad de la lente, no tienen colores mezclados en los bordes del objetivo. En el pasado, el procesamiento era más complicado que hoy en día con las computadoras, pero los requisitos de calidad de la luz, el fondo y la cámara se mantienen si el método es la incrustación de color. Las computadoras hacen posibles algoritmos inteligentes de seguimiento de bordes. Vale la pena revisar la herramienta de eliminación de fondo de GIMP. Inserte una imagen problemática real (no una captura de pantalla!!!!!) o nosotros para ver la gravedad de su caso. Recorte si es necesario, pero no reduzca la escala.