Author Topic: ¿Como se usan las máscaras en PixelMath?  (Read 7306 times)

Offline ManoloL

  • PixInsight Addict
  • ***
  • Posts: 220
¿Como se usan las máscaras en PixelMath?
« on: 2009 September 08 13:21:53 »
Hola a todos:
He estado intentando restar un DBE a una imagen a la que había aplicado una máscara binarizada para que el DBE no se restara de las zonas que no son cielo.
No lo he logrado, el DBE se restaba también de las zonas que en principio estaban enmascaradas.
¿Hay que hacer algo especial para realizar estas operaciones?
Creo que he intentado todo lo que se me ha ocurrido sin ningún resultado positivo.

Saludos.
Saludos.

Manolo L.

Offline Carlos Milovic

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2172
  • Join the dark side... we have cookies
    • http://www.astrophoto.cl
Re: ¿Como se usan las máscaras en PixelMath?
« Reply #1 on: 2009 September 08 14:10:40 »
Hmmm, qué extraño... se supone que las máscaras no se activan solamente frente a un contenedor de procesos.

En fin, en PixelMath puedes emular el resultado:

Function*Mask + (1-Mask)*$T

donde Function es todo lo que hacías antes, y Mask es el id de la imagen máscara.
Regards,

Carlos Milovic F.
--------------------------------
PixInsight Project Developer
http://www.pixinsight.com

Offline ManoloL

  • PixInsight Addict
  • ***
  • Posts: 220
Re: ¿Como se usan las máscaras en PixelMath?
« Reply #2 on: 2009 September 08 14:46:45 »
Hmmm, qué extraño... se supone que las máscaras no se activan solamente frente a un contenedor de procesos.

En fin, en PixelMath puedes emular el resultado:

Function*Mask + (1-Mask)*$T

donde Function es todo lo que hacías antes, y Mask es el id de la imagen máscara.

Hola:
Lo que ya he hecho es restar de la imagen el mínimo entre el fondo (DBE) y la máscara. Como la he binarizado en la zona que debe proteger da 0 que es el mínimo y por lo tanto no resta nada.
Pero lo que quiero saber es como aplicarlo directamente.
Juan en su tutorial sobre PixelMath dice:
Maskable process: PixelMath can be applied through mask images without limitations.

Es cuestión de que esplique como. Seguramente estaré cometiendo algun error de principiante como cuando hace unos días confundi "=" con "=="

Saludos.
Saludos.

Manolo L.

Offline Carlos Milovic

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2172
  • Join the dark side... we have cookies
    • http://www.astrophoto.cl
Re: ¿Como se usan las máscaras en PixelMath?
« Reply #3 on: 2009 September 08 20:18:38 »
Voy a tratar de adivinar lo que sucede (que Juan me corrija). Es posible que la imagen máscara al estar entre los operadores haga que el proceso de enmascaramiento se desactive temporalmente. Por lo que entiendo de tu algoritmo, lo que tienes que hacer sería algo como

($T-Min(DBE,Mask))*Mask+(1-Mask)*$T

lo que es lo mismo que:

$T-Mask*Min(DBE,Mask)
Regards,

Carlos Milovic F.
--------------------------------
PixInsight Project Developer
http://www.pixinsight.com

Offline ManoloL

  • PixInsight Addict
  • ***
  • Posts: 220
Re: ¿Como se usan las máscaras en PixelMath?
« Reply #4 on: 2009 September 09 13:39:27 »
Voy a tratar de adivinar lo que sucede (que Juan me corrija). Es posible que la imagen máscara al estar entre los operadores haga que el proceso de enmascaramiento se desactive temporalmente. Por lo que entiendo de tu algoritmo, lo que tienes que hacer sería algo como

($T-Min(DBE,Mask))*Mask+(1-Mask)*$T

lo que es lo mismo que:

$T-Mask*Min(DBE,Mask)

Hola de nuevo Carlos:
Yo intentaba aplicarlo abriendo el archivo, poniendo y activando la máscara y realizando con PixelMath la resta entre el archivo y el fondo obtenido con el DBE. He supuesto que al tener el archivo con la máscara activada lo utilizaría PixelMath en dicho estado.
No he encontrado referencias de como usarlo.

La formula que me diste en tu mensaje anterior funciona perfectamente:
Function*Mask + (1-Mask)*$T

He puesto:
 ($T- FondoDBE)*Mascara+ (1-Mascara)*$T
y el resultado ha sido el esperado.

Saludos.
Saludos.

Manolo L.

Offline Carlos Milovic

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2172
  • Join the dark side... we have cookies
    • http://www.astrophoto.cl
Re: ¿Como se usan las máscaras en PixelMath?
« Reply #5 on: 2009 September 09 17:47:54 »
Me alegro que te haya funcionado. Aún no puedo poner las manos en un pc con la última versión, así que no he probado qué pasa en la realidad :P (usualmente trabajo en un pentium 3, donde corro una versión vieja de PI).

En todo caso, me suena raro que no se active la máscara... quizás descubriste un bug :D
Regards,

Carlos Milovic F.
--------------------------------
PixInsight Project Developer
http://www.pixinsight.com

Offline Carlos Milovic

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2172
  • Join the dark side... we have cookies
    • http://www.astrophoto.cl
Re: ¿Como se usan las máscaras en PixelMath?
« Reply #6 on: 2009 September 12 15:16:04 »
Traté de reproducir tu problema, pero siempre permaneció activa la máscara, funcionando correctamente. ¿Te aseguraste que estuviera habilitada?

Bueno, de cualquier forma, por lo menos ya sabemos como reproducir el efecto de la máscara... y si es un bug, Juan lo encontrará :)
Regards,

Carlos Milovic F.
--------------------------------
PixInsight Project Developer
http://www.pixinsight.com

Offline ManoloL

  • PixInsight Addict
  • ***
  • Posts: 220
Re: ¿Como se usan las máscaras en PixelMath?
« Reply #7 on: 2009 September 13 04:13:49 »
Traté de reproducir tu problema, pero siempre permaneció activa la máscara, funcionando correctamente. ¿Te aseguraste que estuviera habilitada?

Bueno, de cualquier forma, por lo menos ya sabemos como reproducir el efecto de la máscara... y si es un bug, Juan lo encontrará :)

Hola Carlos:
He repetido el proceso partiendo de otra imagen desde la cual he generado un nuevo DBE de su fondo y una nueva máscara.
El resultado al efectuar la resta es el mismo activando la máscara o prescindiendo de ella.
Para comprobarlo he realizado esta operación sin rescalar: Primer resultado (con mascara)+0.1-Segundo resultado (sin máscara)
el resultado es una imagen con todos sus puntos con valor 0.10001. Me llama la atención ese 1 después de tres ceros.
He trasladado las imágenes a un segundo ordenador donde tengo también Pixinsight, he repetido el proceso obteniendo el mismo resultado.
O estoy cometiendo sistemáticamente un error en el procedimiento que uso o hay un bug en el programa.

Saludos.

Manolo L.