|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - Froddo
Páginas: [1]
1
« en: Sábado 13 de Diciembre de 2008, 04:58 »
2
« en: Jueves 11 de Diciembre de 2008, 18:04 »
ok, gracias, voy a probar con tu comando, sobre la sentencia if, ya lo he solucionado, he agregado un while Salu2
3
« en: Lunes 8 de Diciembre de 2008, 04:42 »
Hola compañero, yo de nuevo  ,te cuento: He agragado el siguiente código: cam=videoinput('winvideo'); preview(cam); for 0:15; pause(1); foto=getsnapshot(cam);%consigue la foto de la cámara b=rgb2hsv(foto);%cambio al plano HSV H=b(:,:,1)>0.92; S=b(:,:,2)>0.4 && b(:,:,2)<0.8; V=b(:,:,3)>0.4 && B(:,:,3)<0.6; c=H*S*V c = uint8(c); red(:,:,1) = foto(:,:,1).*c; red(:,:,2) = foto(:,:,2).*c; red(:,:,3) = foto(:,:,3).*c; if (max(max(red))==1); fprintf(SerPIC,'%c','A'); imshow(red); end end
Al ejecutar el programa matlab sigue arrojando el error: ??? Operands to the || and && operators must be convertible to logical scalar values.
Otra cosa, cuando no agrego los intervalos de los planos S Y V, osea solo dejo el intervalo del plano H, la sentencia if, no envia el caracter que quiero.., que puede ser???, tengo los puertos com1 abiertos y probados, pero cuando ejecuto el programa no envia el caracter y si muestra la imagen en rojo????? Geo,sobre el por qué trabajar en el plano HSV, fue por qué supuestamente es más robusto que RGB y me daría menos problemas.. Salu2 y muechas gracias nuevamente por tu paciencia
4
« en: Sábado 6 de Diciembre de 2008, 17:20 »
Hola, esperando que esten bien, les cuento : La comparación realizada con la sentencia Ha resultado, pero tiene que ser en condiciones óptimas o sea que el programa no es muy robusto, ya que la mayoría de las veces reconoces pixeles que no son el color rojo.., por ejemplo, si tengo la cámara en un color negro a veces reconoce un pixel blanco producto de la luz..., por eso estoy intentando restringir el intervalo de los planos S y V. Lo que tengo pensado es aplicar la siguiente linea de comando: cam=videoinput('winvideo'); preview(cam); for 0:15; pause(1); foto=getsnapshot(cam);%consigue la foto de la cámara b=rgb2hsv(foto);%cambio al plano HSV H=b(:,:,1)>0.92; S=b(:,:,2)>0.4 && b(:,:,2)<0.8; V=b(:,:,3)>0.4 && B(:,:,3)<0.6; c=??????
Mi duda es si multiplico o sumo los planos y por qué???, además de saber si tien lógica lo que he puesto... Bueno me despido y cualquier ayuda es muy bien recibida... Salu2
5
« en: Viernes 5 de Diciembre de 2008, 08:30 »
gracias compañero nuevamente, tienes razón,he tenido un error al copiar el program, en la funcion para rgb2hsv y el comentario está arreglado(la pagina dejo el comentario en 2 lineas,ya que lo escribí sólo en una).. Sobre tu consejo, voy a tomar los valores de la matriz b y te cuento que pasa.. Salu2 y gracias nuevamente....  ..
6
« en: Jueves 4 de Diciembre de 2008, 23:24 »
Muchas gracias por responder, sobre el código, podrias decier donde esta el problema...,ya que no lo puedo ver, o te refieres que el código tiene errores para lograr el objetivo final??? Sobre el punto de comparación, una idea que estado inplementando es que ocupar el comando max(max(c)), ya que con esto aprovecho el hecho de tener la matriz con 1 y ceros., osea modificar el código y tener algo asÍ: cam=videoinput('winvideo'); preview(cam); for 0:15; pause(1); foto=getsnapshot(cam);%consigue la foto de la cámara b=rgb2hsv(foto);%cambio al plano HSV H=b(:,:,1);plano Hue c = H(:,:,1)>0.92; %rango del color rojo c = uint8(c); if (max(max(c)==1); %aca pongo la sentencia que quiero.. end end
el problema que noto es que despreocupo los otros planos(el de saturacion y brillo),por eso a veces muestra pixeles blancos...,ya que no puedo aplicar este comando c=H(:,:,1)>0.96 && H(:,:,2)>0.2 && H(:,:,2)<0.8 && H(:,:,3)>0.4 && H(:,:,3)<0.7;
en matlab sale el siguiente error: ??? Operands to the || and && operators must be convertible to logical scalar values.Bueno me despido y espero que me ayuden..... Muchas gracias de antemano... Salu2
7
« en: Jueves 4 de Diciembre de 2008, 06:51 »
Hola a todos, les cuento: He tenido varios problemas al reconocer un color,principalmente por la camara web que no era muy buena(ahora esta arreglado), el cuento es que necesito insertar una sentencia de comparación del color, osea: if (la foto tomada tiene rojo) sentencia a aplicar.. end He intentado cercar el punto de interes (roi)de la foto,para comparar los bits de esta matriz, pero sin mucho éxito....,ya que muchas veces el roi no coincide con el color rojo. Les puedo comentar que el programa reconoce el color rojo, luego de bastantes pruebas puedo decir que ese tema esatá solucionado, ya que en el camino hubo problemas de brillo en el color, iluminación etc.,para que tengan una idea si la imagen tiene color rojo en la esquina superior izquierda, la imagen mostrada por matlab después del procesamiento es rojo en la esquina izq. y negro en el resto. cam=videoinput('winvideo'); preview(cam); for 0:15; pause(1); foto=getsnapshot(cam);%consigue la foto de la cámara b=rgb2hsv(foto);%cambio al plano HSV H=b(:,:,1);plano Hue c = H(:,:,1)>0.92; %rango del color rojo c = uint8(c); %acontinuación ve el rojo en los tres planos red(:,:,1) = foto(:,:,1).*c; red(:,:,2) = foto(:,:,2).*c; red(:,:,3) = foto(:,:,3).*c; %luego se puede juntar el resultado y mostar solo el color %deseado con imshow(red) end
la imagen mostrada va ser solo el rojo, pero no se en que parte el programa reconoce el color como para decir si hay rojo haces esto..ojala que se comprenda mi problema.. Bueno,me despido y gracias de antemano.. Salu2
8
« en: Jueves 13 de Noviembre de 2008, 00:10 »
Hola amigos, les pido ayuda, ya que estoy algo perdido, les cuento: necesito unir dos programas, estos estan corriendo bajo netbeans,los tengo en el mismo paquete,un programa se encarga de recibir datos y el otro es una ventanita que se encarga de mostrar los datos en la pantalla. LO IMPORTANTE DEL PROGRAMA ESTA EN LA LINEA 93 Y 98:programa que recibe los datos: package paqbascula; import java.io.*; import java.util.*; import javax.comm.*; public class Bascula implements Runnable, SerialPortEventListener { static String messageString = "P"; static SerialPort serialPort; static OutputStream outputStream; static CommPortIdentifier portId; static Enumeration portList; static InputStream inputStream; static Thread readThread; public static void main(String[] args) { portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { portId = (CommPortIdentifier) portList.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { //-------------------ciclo //-------------------escritura if (portId.getName().equals("COM1")) { try { serialPort = (SerialPort) portId.open("BasculaApp", 2000); } catch (PortInUseException e) {} try { outputStream = serialPort.getOutputStream(); } catch (IOException e) {} try { serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); } catch (UnsupportedCommOperationException e) {} try { outputStream.write(messageString.getBytes()); } catch (IOException e) {} //---------------fin escritura //---------------parametros lectura Bascula reader = new Bascula(); } } } } public Bascula() { try { serialPort = (SerialPort) portId.open("BasculaApp", 2000); } catch (PortInUseException e) {} try { inputStream = serialPort.getInputStream(); } catch (IOException e) {} try { serialPort.addEventListener(this); } catch (TooManyListenersException e) {} serialPort.notifyOnDataAvailable(true); try { serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); } catch (UnsupportedCommOperationException e) {} readThread = new Thread(this); readThread.start(); } public void run() { try { Thread.sleep(20000); } catch (InterruptedException e) {} } public void serialEvent(SerialPortEvent event) { switch(event.getEventType()) { case SerialPortEvent.BI: case SerialPortEvent.OE: case SerialPortEvent.FE: case SerialPortEvent.PE: case SerialPortEvent.CD: case SerialPortEvent.CTS: case SerialPortEvent.DSR: case SerialPortEvent.RI: case SerialPortEvent.OUTPUT_BUFFER_EMPTY: break; case SerialPortEvent.DATA_AVAILABLE: byte[] readBuffer = new byte[10]; try { // aca está la clave,es acá donde se guarda los datos recibidos, en int numBytes while (inputStream.available() > 0) { int numBytes = inputStream.read(readBuffer); //aca se debe colocar un comando que permita ingresar los datos que cambian constantemente en la etiqueta de la ventana } } catch (IOException e) {} break; } } }
Para la ventanita tengo este programa la etiqueta donde va la variable a mostrar se encuentra en la linea 16paqbascula; import java.awt.*; import java.awt.event.*; public class NewClass { public static void main( String args[] ) { IHM ihm = new IHM(); } } class IHM { public IHM(){ // Instancia un objeto Label con una cadena para inicializarlo y // que aparezca como contenido en el momento de su creación Label miEtiqueta = new Label(la varible que se guarda en el programa anterior va acá, (en teoria es numBytes) ); // Coloca la eqtiqueta sobre el objeto Frame Frame miFrame = new Frame( "Ventana" ); miFrame.setLayout( new FlowLayout() ); miFrame.add( miEtiqueta ); miFrame.setSize( 250,150 ); miFrame.setVisible( true ); // Instancia y registra un objeto receptor de eventos de ventana // para concluir la ejecucion del programa cuando el Frame se // cierres por accion del usuario sobre el miFrame.addWindowListener( new Conclusion() ); } } class Conclusion extends WindowAdapter { public void windowClosing( WindowEvent evt ) { // Concluye el programa cuando se cierra la ventana System.exit(0); } }
Por favor necesito ayuda estoy desesperado, no se como llamar de una clase a otra dentro del mismo paquete además de los detalles mencionados en el código. Me despido y muchas gracias de antemano.. Salu2
9
« en: Domingo 28 de Septiembre de 2008, 04:56 »
Hola a todos, les cuento:
Necesito que me puedan guiar en un programa que desplegue la información a una interfaz gráfica los datos que se envian al pc, por medio de una puerta Serie RS-232... necesito que por favor me guien, ya que en java soy un principiante, aunque esta semana he leido bastante y soy capaz de reconocr clases, metodos y entender un programa.. Sobre la puerta tengo claro como activar la comunicación con el pc, mi problema es la interfaz gráfica a usar...
Bueno eso es todo y gracias de antemano..
Salu2
10
« en: Domingo 13 de Julio de 2008, 22:17 »
Gracias compadre, ya lo he decifrado.. Salu2
11
« en: Miércoles 9 de Julio de 2008, 04:59 »
Hola a todos: Esperando que se encuentren bien les pido AYUDA les cuento: Me han dado una tarea y estoy muy metido ya que assembler me ha costado un monton poder acostumbrarme, la cosa es que tengo que encontrar el password del programa con el Turbo Debugger pero no puedo dar con el password. ¿cómo debo debuggear? o sea , alguna técnica que tengan ustedes ya que tienen mucha más experiencia en asm... Bueno eso es todo y gracias de antemano... Salu2 PD: les doy el link del programa(mediafire.com/?jdhf9dccgyh), pesa 408.55 KB, por si alguien me da una manito de gato y me ayuda con el password. Forma de uso: File (Alt+F), Load, “TMICRO_8.exe”
Páginas: [1]
|
|
|