Re: [Eqalign-devel] =?iso-8859-1?q?Subsistema_de_c=E1maras?=
Brought to you by:
antoniofga,
isoplut
From: <is...@ya...> - 2007-12-04 10:44:50
|
De nuevo mil disculpas a todos, ando sin internet en casa, as=ED que os pod= =E9is imaginar, estoy a la espera de que Telef=F3nica se digne a solucionar= el problema...=0A=0AOs escribo luego, cuando termine el currelo.=0A=0AUn s= aludo.=0A=0A----- Mensaje original ----=0ADe: Antonio Fraga <antoniofga@yah= oo.es>=0APara: Lista de correo de desarrollo EQAlign <eqalign-devel@lists.s= ourceforge.net>=0AEnviado: lunes, 3 de diciembre, 2007 22:59:18=0AAsunto: R= e: [Eqalign-devel] Subsistema de c=E1maras=0A=0A=0A=0A =0ADIV {=0AMARGIN:0p= x;}=0A=0A=0A=0ACorregido un error que no detect=E9 en el ordenador =0Aprinc= ipal y s=ED en el prot=E1til:=0A=0ANo es seguro lanzar eventos desde un thr= ead!!!! ya =0Ales dije que nos oy especialista en hilos. Bien, despu=E9s de= comerme el coco toda =0Ala ma=F1ana he aprendido que lo que hay que hacer = es enviarle una se=F1al al proceso =0Apadre y que sea =E9ste quien dispare = el evento.=0A=0AAdem=E1s, cuando la webcam pierde un fotograma el =0Asistem= a fallaba. Bien tambi=E9n he corregido ese bug.=0A=0ALo interesante de todo= esto (aparte que estoy =0Aaprendiendo un mont=F3n :) es que todo el negoc= io de hilos, bloqueos y dem=E1s =0Aest=E1 centrado en la clase de nivel sup= erior Camera, los drivers de c=E1mara s=F3lo =0Atienen que hacer su trabajo= : activar la exposici=F3n, responder si la imagen est=E1 =0Alista y servirl= a bajo petici=F3n.=0A=0A =0A=0AEl sistema de hilos con evento ser=EDa el m= =E9todo m=E1s =0Aeficiente, pues notificar=EDa al programa consumidor de la= disponibilidad de la =0Aimagen justo cuando lo est=E1.=0A=0AEl sistema de = cron=F3metro es menos eficiente en =0Ateor=EDa, pero en algunas situaciones= puede ser lo m=E1s adecuado.=0A=0A =0A=0AEn fin, lo he probado con la webc= am y va como una =0Amoto a 10ms, la simulaci=F3n tambi=E9n va, he implement= ado el driver de las atik =0Apero no lo he podido probar y tambi=E9n he sub= ido una aproximaci=F3n a lo que podr=EDa =0Aser el control de las DSI, sin = ninguna documentaci=F3n en absoluto, con las =0Alibrer=EDas a pelo (por cie= rto es un compilado .NET) y totalmente a ciegas (no =0Atengo DSI)=0A=0A =0A= =0A=A1=E9chenle un vistazo aunque sea en modo =0Asimulaci=F3n!=0A=0AUn salu= do=0A=0A =0A=0A =0A=0A----- Original Message ----- =0A=0A=0A From: =0A An= tonio =0A Fraga =0A=0A To: Lista de correo de =0A desarrollo EQAlign =0A= =0A Sent: Saturday, December 01, 2007 10:21 =0A PM=0A=0A Subject: [Eqali= gn-devel] Subsistema de =0A c=E1maras=0A=0A =0A=0A=0A Acabo de subir el = proyecto CamCap. Si lo abren =0A ver=E1n que s=F3lo tiene un formulario qu= e controla una instancia de la clase =0A Camera que est=E1 en otro proyect= o compilado como una librer=EDa. Ah=ED es donde =0A est=E1 todo el meollo = de c=E1maras.=0A=0A =0A=0A El proyecto EQCam exporta dos =0A clases:=0A= Camera: es el punto de entrada a todos los drivers =0A de c=E1mara en s=ED= ..=0A=0A =0A=0A Imaging: esta clase da soporte =0A al tipo de imagen que= trabaja Camera: FloatImage. FloatImage =0A representa una imagen (monocro= ma) en un array floats normalizado (valores =0A entre 0.0 y 1.0). Contiene= los m=E9todos necesarios para importar desde un =0A bitmap o desde otro o= bjeto de tipo FloatImage, exportar a Bitmap, operaciones =0A b=E1sicas sob= re el histograma, operaciones aritm=E9ticas sobre de im=E1genes con =0A ot= ras im=E1genes o con valores num=E9ricos, clonaci=F3n, etc. (lo de etc es m= =E1s bien =0A porque podemos meter ah=ED lo que queramos). =0AHay un proce= so de imagen =0A definido: GaussianBlur, tengo algunos m=E1s pero este es = el =FAnico =0A estrictamente necesario. Bueno, igual es necesario meter lo= s ajustes de =0A histograma m=E1s complejos (mediante curvas o ajuste de m= edios tonos), pero ya =0A veremos.=0A=0A =0A=0A Bien, lo importante es = que todos los drivers de =0A la clase Camera y la propia clase camera devu= elven FloatImage con lo que =0A pasamos a precisi=F3n de 32 bits, m=E1s qu= e para la captura, para otros procesos =0A como apilados y promedios es ba= stante interesante contar con m=E1s precisi=F3n que =0A la propia c=E1mara= ..=0A=0A =0A=0A Vale. Sobre las c=E1maras. He copiado casi =0A literalme= nte la especificaci=F3n ascom, con s=F3lo algunos cambios, hasta el =0A co= nrtol del cooling y "t=F3". En el interfaz CameraInterface est=E1 detallada= toda =0A la especificaci=F3n. Miren este archivo antes de nada.=0A=0A = =0A=0A S=F3lo he implementado SimCamera y WDM para =0A comprobar que el m= odelo es v=E1lido. Si nos ponemos de acuerdo habr=EDa que =0A recodificar = todos los drivers de c=E1mara.=0A=0A =0A=0A Una de los puntos a favor de= este modelo es que =0A los drivers de c=E1mara no hacen =93procesos de ne= gocio=94, simplemente atienden a =0A las peticiones de imagen y act=FAan s= obre los par=E1metros b=E1sicos de la c=E1mara =0A que controlan: binning,= subframe, temperatura del peltier,...=0ALos =93procesos =0A de negocio=94= (exposici=F3n en modo loop, proceso de obtenci=F3n de darks y resta =0A d= el dark, histogramas, etc...) estar=EDan en la clase Camera como capa super= ior =0A y punto de acceso a las c=E1maras desde =93fuera=94.=0A=0A =0A= =0A De todas maneras, a partir de la clase Camera se =0A tiene acceso dir= ecto al driver al que se est=E1 conectado, por si se quisiera =0A realizar= alguna alguna acci=F3n espec=EDfica. A ver:=0A=0A Adem=E1s de implementar= el interfaz =0A CameraInterface, los drivers de c=E1mara pueden implement= ar otras =0A funcionalidades espec=EDficas de cada c=E1mara. Por ejemplo:= =0A-el driver de la =0A c=E1mara de simulaci=F3n necesita conocer los valo= res de latitud/longitud y las =0A coordenadas donde que apunta el telescop= io.=0A-el driver WDM necesita tener =0A acceso a los par=E1metros de larga= exposici=F3n (si es un SC1, etc)=0A-el driver =0A WDM puede presentar - a= parte del di=E1logo de configuraci=F3n que todas las =0A c=E1maras muestra= n en el m=E9todo com=FAn SetupDialog- otro di=E1logo de configuraci=F3n =0A= de formato.=0A=0A =0A=0A Algunos se implementan en la propia clase Cam= era, =0A pero tener acceso a los que no, se hace a travez del propio drive= r espec=EDfico =0A a partir de la propiedad: =0Apublic CameraInterface =0A= CamDriver=0A=0A =0A=0A Por ejemplo, para mostrar el di=E1logo de forma= to, =0A espec=EDfico de las WDM:=0A=0A =0A=0A if =0A (cam.Camera= AccessType =3D=3D =0A eCameraAccessType.WDM)=0A =0A ((EQA.Camera.D= rivers.WDMCam)cam.CamDriver).FormatDialog();=0A=0A =0A=0A Otro ventaja q= ue le veo a este modelo es que el =0A subsistema de c=E1mara queda separad= o en una librer=EDa, si detectamos cualquier =0A problema, basta con corre= girlo y redistribuir esta librer=EDa. Tal como est=E1 =0A ahora, el progra= ma consumidor tiene que establecer el tipo de c=E1mara (Sim, =0A WDM, Atik= ....), pero es f=E1cil aislar eso tambi=E9n, con lo que si se implementan = =0A nuevas c=E1maras no ser=EDa necesario siquiera compilar el proyecto EQ= Align. =0A Adem=E1s el acceso a c=E1maras em una librer=EDa separada se pu= ede utilizar en un =0A proyecto totalmente diferente, como es el propio Ca= mCam.=0A=0A =0A=0A Bien, he tratado de hacer robusto el sistema de =0A = acceso a las im=E1genes con sem=E1foros y dem=E1s. Tambi=E9n he tratado de = hacer =0A =93buen=94 (jajaja) uso de los hilos, pero no he estado ni tres = d=EDas con esto as=ED =0A que si estamos de acuerdo que este es el mejor m= odelo posible, todav=EDa hay =0A mucho en lo que trabajar. =0A=0A =0A=0A= Bueno, en cuanto a la obtenci=F3n de im=E1genes: se =0A puede usar un cr= on=F3metro y trabajar en cada click, preguntando si la imagene =0A st=E1 d= isponible para obtenerla etc, o se puede capturar un evento que dispara =0A= la calse C=E1mara cuando tiene la imagen disponible. Dependiendo de qu=E9= cosa un =0A m=E9todo ser=E1 mejor que otro. =0A=0A =0A=0A En fin, desc= =E1rgenlo, pru=E9benlo, m=EDrenlo, =0A busquelen las cosquillas y lo discu= timos.=0AUn saludo!=0A=0A =0A =0A=0A=0A =0A-----------------------------= --------------------------------------------=0ASF.Net =0A email is sponsor= ed by: The Future of Linux Business White Paper=0Afrom =0A Novell. From t= he desktop to the data center, Linux is =0A going=0Amainstream. Let it si= mplify your IT =0A future.=0Ahttp://altfarm.mediaplex.com/ad/ck/8857-50307= -18918-4=0A =0A =0A=0A=0A =0A___________________________________________= ____=0AEqalign-devel =0A mailing =0A list=0AE...@li...urcefor= ge.net=0Ahttps://lists.sourceforge.net/lists/listinfo/eqalign-devel=0A=0A= =0A=0A=0A=0A=0A =0A______________________________________________ =0A= =BFChef por primera vez?=0AS=E9 un mejor Cocinillas. =0Ahttp://es.answers.y= ahoo.com/info/welcome |