.: Astrofotografía :. Forum Index
Foros de astrofotografía y ciencias afines
.: Astrofotografía :.
Foro dedicado a las salidas de observación y fotografía astronómica

AlbumAlbum  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   ChatChat   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

de Java y javascript

 
Post new topic   Reply to topic    .: Astrofotografía :. Forum Index -> Software e Internet
 View previous topic :: View next topic  
Author Message
Caliu
Omnes una manet nox
Omnes una manet nox


Joined: 03 Nov 2005
Posts: 5034
Location: Castellò de la Plana-Països Catalans

PostPosted: Sun Mar 18, 2007 12:51 pm    Post subject: de Java y javascript Reply with quote

¿alguna alma caritativa podira explicarme que ventajas tiene esto? ¿necesito aprender a escribir en ese lenguaje? ¿que ventajas ofrece en PI? ¿como se usa en PI? ¿podriais ponerme ejemplos? y sobre todo ¿podrias explicarlo en un lenguaje mas o menos sencillito? Wink
_________________
https://www.astrobin.com/users/ferran_bosch/------
SHARPSTAR 61 EDH III, STAR ADVENTURER GTI2 PRO, MAK SW 127
----------------------------------------------------
Back to top
View user's profile Send private message   Visit poster's website
David Serrano
Arrectis auribus
Arrectis auribus


Joined: 31 Dec 2006
Posts: 627
Location: Newbury, West Berkshire, UK

PostPosted: Sun Mar 18, 2007 1:39 pm    Post subject: Re: de Java y javascript Reply with quote


_________________
--
David Serrano


Last edited by David Serrano on Mon Nov 12, 2007 2:54 am; edited 1 time in total
Back to top
View user's profile Send private message  
Caliu
Omnes una manet nox
Omnes una manet nox


Joined: 03 Nov 2005
Posts: 5034
Location: Castellò de la Plana-Països Catalans

PostPosted: Sun Mar 18, 2007 2:20 pm    Post subject: Reply with quote

O sea, que por ejemplo puedo automatizar mis porcesos de costumbre?, es decir, yo siempre utilizo los valores de la mediana para normalizar la imagen, ¿podria automatizar un proceso como este?
_________________
https://www.astrobin.com/users/ferran_bosch/------
SHARPSTAR 61 EDH III, STAR ADVENTURER GTI2 PRO, MAK SW 127
----------------------------------------------------
Back to top
View user's profile Send private message   Visit poster's website
David Serrano
Arrectis auribus
Arrectis auribus


Joined: 31 Dec 2006
Posts: 627
Location: Newbury, West Berkshire, UK

PostPosted: Sun Mar 18, 2007 4:35 pm    Post subject: Reply with quote


_________________
--
David Serrano


Last edited by David Serrano on Mon Nov 12, 2007 2:55 am; edited 1 time in total
Back to top
View user's profile Send private message  
Caliu
Omnes una manet nox
Omnes una manet nox


Joined: 03 Nov 2005
Posts: 5034
Location: Castellò de la Plana-Països Catalans

PostPosted: Sun Mar 18, 2007 8:10 pm    Post subject: Reply with quote

Entonces tendré que aprender a escribir en este lenguaje, ¿alguna web donde hacerlo?, por lo pronto voy a investigar en el google Very Happy
_________________
https://www.astrobin.com/users/ferran_bosch/------
SHARPSTAR 61 EDH III, STAR ADVENTURER GTI2 PRO, MAK SW 127
----------------------------------------------------
Back to top
View user's profile Send private message   Visit poster's website
Carlos Milovic
Guest





PostPosted: Sun Mar 18, 2007 10:13 pm    Post subject: Reply with quote

En PixInsight, los scripts pueden contener codigo puro JavaScript, asi como comandos propios de la consola, administrar archivos, etc. además, cualquier proceso instalado es automaticamente escriptable, es decir, internamente el programa se encarga de definir como llamarlo, y definir sus parametros. Asi, por ejemplo, se puede definir en una lineas del script una instancia de CurvesTransform, con todos los puntos de control, para los canales que queramos. Ojo, que este proceso no tiene interfaz por la consola de comandos, estas son cosas distintas. Para averiguar la sintaxis de cada proceso se puede utilizar el contenedor, y gracias a 'el mirar como se definen los parametros.

Ahora, respecto a JavaScript, es un lenguaje interpretado muy similar a C. Es altamente intuitivo, y no se requiere mucho para empezar. Eso si, ya que esta altamente "influenciado" por la PCL, hay varias cosas que hay que aplicar de manera especial, como por ejemplo, escribir en la consola. Para aprender todo esto lo mejor es simplemente ir mirando los ejemplos que se adjuntan, y usar el viejo método de "copiar y pegar" para ir construyendo nuestros codigos.


Salu2

Carlos Milovic F.
Back to top
juan_conejero
Asiduo
Asiduo


Joined: 17 Jun 2006
Posts: 163
Location: Valencia

PostPosted: Mon Mar 19, 2007 7:20 pm    Post subject: Re: de Java y javascript Reply with quote

Quote:
Un compañero de foro preguntó hace unas horas cómo obtener todas las capas sobre las que ATrousWaveletTransform va a funcionar según los parámetros que le demos. No se me ocurre ninguna forma de automatizar eso excepto con JS. Se crearían varias instancias del proceso, cada una de las cuales aislaría una sola capa y crearía una nueva imagen con ella.


Sí que se podría hacer así, aunque el proceso ATrousWaveletTransform dispone de un modo de previsualización de capas para hacer esto de forma cómoda (Layer Preview).

Sin embargo, ya que estamos hablando de cómo JavaScript nos puede ayudar a automatizar tareas, esto se puede hacer directamente con JavaScript sin acudir al proceso ATrousWaveletTransform, porque las transformaciones por wavelets son parte de la implementación de JS en PixInsight (entre muchas otras cosas). Prueba este script (copia y pega en Script Editor):

Code:

#include <pjsr/UndoFlag.jsh>

/*
 * Funciones de escala
 */
var _3x3LinearInterpolation = [ 1/16, 1/8, 1/16,
                                1/8,  1/4, 1/8,
                                1/16, 1/8, 1/16 ];

var _5x5B3Spline = [ 1/256, 1/64, 3/128, 1/64, 1/256,
                     1/64,  1/16, 3/32,  1/16, 1/64,
                     3/128, 3/32, 9/64,  3/32, 3/128,
                     1/64,  1/16, 3/32,  1/16, 1/64,
                     1/256, 1/64, 3/128, 1/64, 1/256 ];

/*
 * Realiza la transformación por wavelets de una imagen y extrae las capas de
 * wavelets como un conjunto de imágenes independientes.
 *
 * image             La imagen que queremos transformar.
 *
 * scalingFunction   Función de escala para la transformación. Puede ser
 *                   cualquier función positiva como un kernel cuadrado.
 *
 * n                 Número de capas de wavelets (n >= 1). Se generarán n+1
 *                   imágenes para las n capas de detalle más la capa residual.
 */
function ExtractWaveletLayers( image, scalingFunction, n )
{
   // Hacemos la transformación por wavelets con la función de escala
   // y el número de capas especificados. W contendrá una serie de imágenes
   // (en pto. flotante de 32 bits) que corresponderán a las capas de
   // wavelets.
   var W = image.aTrousWaveletTransform( scalingFunction, n );

   // Para cada capa de wavelets. La capa j = n es la capa residual de la
   // transformación. Para j < n tenemos capas de detalle.
   for ( var j = 0; j <= n; ++j )
   {
      // Identificador de la imagen para esta capa
      var id = (j < n) ? format( "layer%02d", j ) : "residual";

      // Nueva ventana para esta capa
      // Se crea una imagen de un píxel en escala de grises (1x1x1),
      // 32 bits en punto flotante.
      var window = new ImageWindow( 1, 1, 1, 32, true, false, id );

      // Vista principal de la ventana
      var view = window.mainView;

      // Informamos a PI de que vamos a cambiar la imagen en la vista
      // UndoFlag_NoSwapFile hace que PI no genere un archivo de intercambio
      // para la imagen (puesto que es una imagen nueva, no hace falta un
      // archivo de intercambio porque no vamos a querer deshacer (undo) nada).
      view.beginProcess( UndoFlag_NoSwapFile );

      // Transferimos la imagen de la capa j de wavelets a la vista ppal. de
      // la ventana.
      view.image.transfer( W[j] );

      // Reescalamos al rango estándar de 0 a 1.
      view.image.rescale()

      // Informamos a PI que hemos terminado de trabajar con la vista.
      view.endProcess();

      // Hacemos que la ventana sea visible.
      window.show();

      // Aplicamos el zoom necesario para que quepa toda la ventana en el
      // espacio de trabajo.
      window.zoomToFit();
   }
}

function main()
{
   // Obtenemos la ventana de imagen activa en el espacio de trabajo.
   var window = ImageWindow.activeWindow;

   // ¿No hay ninguna ventana de imagen activa?
   if ( window.isNull )
      throw new Error( "No active image window!" );

   // Llamamos a la función que extrae capas. Para extraer un número
   // diferente de capas y/o usar otra función de escala, basta con
   // cambiar los argumentos de la función.
   ExtractWaveletLayers( window.mainView.image, _5x5B3Spline, 5 );
}

main();



Como ves es bastante sencillo en realidad. Por supuesto, hace falta un montón de documentación para todo esto. La va a haber, naturalmente, aparte de montones de ejemplos Wink
Back to top
View user's profile Send private message  
juan_conejero
Asiduo
Asiduo


Joined: 17 Jun 2006
Posts: 163
Location: Valencia

PostPosted: Mon Mar 19, 2007 7:34 pm    Post subject: Reply with quote

Hola Caliu

Caliu wrote:
Entonces tendré que aprender a escribir en este lenguaje, ¿alguna web donde hacerlo?, por lo pronto voy a investigar en el google Very Happy


Hombre, no es que sea necesario, aunque en mi opinión es recomendable, y además es muy divertido y tremendamente adictivo Laughing

Bromas aparte, con los scripts tu forma de entender el procesamiento puede cambiar completamente. El poder y la flexibilidad que tienen te pueden permitir hacer cosas que ahora sólo puedes imaginar, y mucho más.

Para empezar a enterarse de JavaScript, no hay nada como la documentación de referencia en el sitio de Mozilla:

http://developer.mozilla.org/e....._Reference

Se refiere a la versión 1.5 de JavaScript. PI implementa la versión 1.7, aunque no hay diferencias importantes. Está en Inglés, me temo. No sé si hay algo equivalente en español, aunque me temo que no (que me corrija alguien si estoy equivocado). Es una documentación técnica; hay que tomársela con calma y despacio, y estar siempre probando cosas, mirando ejemplos, y preguntando. Para eso estamos Wink

Hay que tener en cuenta que la implementación de JavaScript en PI no está orientada a generar y controlar documentos para la web, como ocurre en cualquier navegador. En PI, JavaScript es un lenguaje especializado en procesamiento de imágenes. PI no sabe nada de urls, etiquetas html y cosas por el estilo. Por ejemplo, no existe algo como "document", pero sí Image, ImageWindow, etc.

Como decía en un mensaje anterior, falta documentación para todo esto, aunque con los ejemplos que hemos incluido se puede empezar a jugar. Poco a poco... Smile
Back to top
View user's profile Send private message  
juan_conejero
Asiduo
Asiduo


Joined: 17 Jun 2006
Posts: 163
Location: Valencia

PostPosted: Mon Mar 19, 2007 7:46 pm    Post subject: Reply with quote

David Serrano wrote:
(*) Supongo que existirán las típicas restricciones de seguridad, en plan de que no se podrán abrir archivos ni conectores de red, pero para lo que nos importa, esto no supone ninguna limitación.


De hecho, en PI hemos transgredido todas estas limitaciones completamente Smile Suponemos que el usuario es mayorcito como para saber que abrir un archivo desde un script implica ciertos riesgos y por lo tanto una responsabilidad. Personalmente, odio la tendencia actual de sobreproteger a los usuarios hasta el extremo de impedirles funcionar libremente, la paranoia absurda por la seguridad (véase el insoportable windows vista), etc.

Así que en PI se puede trabajar libremente con archivos desde JavaScript. De hecho, un script muy bonito sería uno para generar una galería de imágenes automáticamente, escribiendo páginas html, generando miniaturas, y todo eso Smile
Back to top
View user's profile Send private message  
David Serrano
Arrectis auribus
Arrectis auribus


Joined: 31 Dec 2006
Posts: 627
Location: Newbury, West Berkshire, UK

PostPosted: Mon Mar 19, 2007 9:29 pm    Post subject: Reply with quote


_________________
--
David Serrano
Back to top
View user's profile Send private message  
Display posts from previous:   
Post new topic   Reply to topic    .: Astrofotografía :. Forum Index -> Software e Internet All times are GMT + 1 Hour
Page 1 of 1
Username:
Message body:

 
 

Similar Topics
Topic Author Forum Replies Last Post
No new posts Me he quedado sin JAVA ManoloL Software e Internet 5 Sun Mar 18, 2007 8:18 pm View latest post
ManoloL



 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
 
Creative Commons License