Tengo una imagen con dos capas: Fondo y su copia + algunas modificaciones. ¿Es posible de alguna manera restar colores de la capa de fondo, de modo que todos los píxeles que son diferentes se extraigan con transparencia y el resultado de la extracción combinado con la capa bg se vea igual o casi igual que la capa fusionada original ?
Aporte:
Posible resultado: parte de la capa es opaca, parte es transparente. El resultado es idéntico a la capa fusionada original.
ACTUALIZAR
Quería usar esto para extraer la diferencia entre las capas originales y modificadas, por lo que, en la práctica, las capas de fondo y modificadas no tendrán un color. Aquí hay un ejemplo más de la vida real. Tengo un fondo y su copia con algunos trazos de pincel y trazos de la herramienta Difuminar.
Aquí está el resultado que estoy teniendo ahora. Utilizo Diferencia para detectar píxeles cambiados y luego lo cargo como selección, elimino la mitad de la transparencia de esta selección y extraigo píxeles completamente opacos.
Este es un resultado que me gustaría obtener: algunos píxeles tienen transparencia porque la diferencia no era 100% blanca. Me doy cuenta de que esto puede no ser posible, pero supongo que no hay daño en intentarlo.
Si desea volver a combinar en Photoshop la capa fusionada y el fondo original para recrear la capa de primer plano original y usar colores normales de 8 bits, la respuesta es "No es posible".
Pero los colores de 16 bits tienen el margen necesario. La siguiente imagen tiene un primer plano que es de un solo color y opacidad variable. El modo de imagen es RGB de 16 bits.
Probablemente conozcas la ecuación de fusión normal:
M=xF+(1-x)B donde
M=valor rgb en la capa fusionada, x=la opacidad del color de primer plano en escala 0...1, F=valor rgb de la capa de primer plano, B=valor rgb de la capa de fondo
Esta fórmula se calcula para cada píxel y por separado para r, g y b.
Las opacidades de los píxeles de primer plano se pueden calcular si se conocen los números rgb en cada píxel en el primer plano original, el fondo y la capa combinada.
x=(MB)/(FB)
MB y FB se pueden lograr bien con la diferencia del modo de fusión. El signo de x será finalmente correcto, porque debe ser positivo.
Entonces, preparamos las capas necesarias para las restas. Debajo de todos hay originales de repuesto.
Las diferencias se realizan fusionando las copias de fondo hacia abajo. Las capas resultantes se dividen. El resultado debería ser la opacidad del color de primer plano original:
Podemos probarlo colocándolo en la máscara de capa:
Bastante cerca, aunque no exacto. Fusionando el fusionado recreado y haciendo una diferencia con el fusionado original podemos encontrar con el selector de color que la mayor diferencia tiene brillo 4%
Agregue debido a la pregunta extendida:
El autor de la pregunta quería saber si esto aún se puede resolver, si a) el color de primer plano era desconocido b) el color de primer plano era desconocido y varía a lo largo de la imagen
La ecuación de fusión da en un solo píxel en realidad tres ecuaciones, pero cuatro incógnitas (opacidad x y primer plano R, G y B). Si asumimos que R, G y B son iguales en todo el primer plano y escribimos la misma ecuación en otro píxel donde el color de fondo es el mismo, pero el color combinado es diferente y no es el mismo que el fondo, obtenemos otros tres ecuaciones, pero solo una nueva incógnita: la opacidad en el nuevo píxel. Eso debe tener solución exacta.
Solo se necesitan 2 píxeles para determinar el R, G y B desconocidos. Pero eso no se puede hacer con los modos de fusión de capas de Photoshop, porque funcionan por píxel. Necesitas resolver las ecuaciones o tener un algoritmo de búsqueda iterativo.
El caso b) es más complejo. Si solo se usa una pequeña cantidad de combinaciones RGB diferentes en primer plano, tenemos muchas más ecuaciones que variables desconocidas. Un algoritmo inteligente puede adivinar los lugares correctos para tomar muestras de píxeles como si pudiéramos verlos y calcular los colores de forma iterativa.
Desafortunadamente no soy programador, y mucho menos matemático, por lo que no puedo mostrar un programa que resuelva b).
Con un fondo de color sólido, puede usar la "herramienta de borrador de fondo" Discreto, tolerancia 70-100% + algo de protección de color de primer plano. Es similar a "color a alfa" en Gimp. Pero necesita mapa de bits a alfa y no sé esto en Photoshop.
O puede modificar esto: http://cmtt.github.io/color-to-alpha/
Joonas
sergey kritsky
curioso