|
Foros de astrofotografía y ciencias afines |
|
.: AstrofotografÃa :. Foro dedicado a las salidas de observación y fotografÃa astronómica
|
|
|
Author |
Message |
Caliu Omnes una manet nox
Joined: 03 Nov 2005 Posts: 5034 Location: Castellò de la Plana-Països Catalans
|
Posted: Sun Mar 18, 2007 12:51 pm Post subject: de Java y javascript |
|
|
¿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? _________________ https://www.astrobin.com/users/ferran_bosch/------
SHARPSTAR 61 EDH III, STAR ADVENTURER GTI2 PRO, MAK SW 127
----------------------------------------------------
|
|
Back to top |
|
|
David Serrano Arrectis auribus
Joined: 31 Dec 2006 Posts: 627 Location: Newbury, West Berkshire, UK
|
Posted: Sun Mar 18, 2007 1:39 pm Post subject: Re: de Java y javascript |
|
|
_________________ --
David Serrano
Last edited by David Serrano on Mon Nov 12, 2007 2:54 am; edited 1 time in total |
|
Back to top |
|
|
Caliu Omnes una manet nox
Joined: 03 Nov 2005 Posts: 5034 Location: Castellò de la Plana-Països Catalans
|
Posted: Sun Mar 18, 2007 2:20 pm Post subject: |
|
|
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 |
|
|
David Serrano Arrectis auribus
Joined: 31 Dec 2006 Posts: 627 Location: Newbury, West Berkshire, UK
|
Posted: Sun Mar 18, 2007 4:35 pm Post subject: |
|
|
_________________ --
David Serrano
Last edited by David Serrano on Mon Nov 12, 2007 2:55 am; edited 1 time in total |
|
Back to top |
|
|
Caliu Omnes una manet nox
Joined: 03 Nov 2005 Posts: 5034 Location: Castellò de la Plana-Països Catalans
|
Posted: Sun Mar 18, 2007 8:10 pm Post subject: |
|
|
Entonces tendré que aprender a escribir en este lenguaje, ¿alguna web donde hacerlo?, por lo pronto voy a investigar en el google _________________ https://www.astrobin.com/users/ferran_bosch/------
SHARPSTAR 61 EDH III, STAR ADVENTURER GTI2 PRO, MAK SW 127
----------------------------------------------------
|
|
Back to top |
|
|
Carlos Milovic Guest
|
Posted: Sun Mar 18, 2007 10:13 pm Post subject: |
|
|
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
Joined: 17 Jun 2006 Posts: 163 Location: Valencia
|
Posted: Mon Mar 19, 2007 7:20 pm Post subject: Re: de Java y javascript |
|
|
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 |
|
Back to top |
|
|
juan_conejero Asiduo
Joined: 17 Jun 2006 Posts: 163 Location: Valencia
|
Posted: Mon Mar 19, 2007 7:34 pm Post subject: |
|
|
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 |
Hombre, no es que sea necesario, aunque en mi opinión es recomendable, y además es muy divertido y tremendamente adictivo
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
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... |
|
Back to top |
|
|
juan_conejero Asiduo
Joined: 17 Jun 2006 Posts: 163 Location: Valencia
|
Posted: Mon Mar 19, 2007 7:46 pm Post subject: |
|
|
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 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 |
|
Back to top |
|
|
David Serrano Arrectis auribus
Joined: 31 Dec 2006 Posts: 627 Location: Newbury, West Berkshire, UK
|
Posted: Mon Mar 19, 2007 9:29 pm Post subject: |
|
|
_________________ --
David Serrano |
|
Back to top |
|
|
|
|
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
|
|
© 2005-2007 - astrofotografia.es
En la red desde el 14/10/2005 - Puedes contactar con el administrador en admin@site
Powered by phpBB © 2001, 2005 phpBB Group
- -
|
|
|