|
62
|
Programación / Java / Re: Reconocimiento de Patrones en JAVA
|
en: 2 Julio 2010, 23:50 pm
|
Ya pude hacer una modificacion importante. ya puedo agrupar los pixeles.!!!!! YA no solo me dice el numero de patrones busca los pixeles vecinos y los agrupa.!!!! Aqui en el foro posteo como agrupar valores y el mismo metodo que comparto aqui http://foro.elhacker.net/java/agrupamiento_de_nodos_vecino_en_un_arreglo_mineria_de_datos-t298383.0.html Es el mismo metodo que utilize para agrupar los pixeles en el programa de reconocimiento de patrones. Entonces el codigo modificado para que agrupe los patrones es el siguiente: import java.awt.*; import javax.swing.*; import java.awt.image.BufferedImage; import javax.swing.ImageIcon; import java.io.*; import javax.imageio.ImageIO; //Autor Jose abel de la Fuente Arriaga //CyberServer public class Pixeles { public static void main (String[] args ) { JOptionPane. showMessageDialog(null, "Proyecto: Reconocimiento de Patrones en imagenes \n"+ "Autor: Jose Abel de la fuente \n" + "Correo: crow_15@hotmail.com \n" + "Lenguaje: Java \n"+ "Arriva atlacomulco, atte: cyberServer"); String PixelBuscar =JOptionPane. showInputDialog("Color en Hexadecimal del pixel a Buscar \n El Default es Blanco - ffffff", "ffffff"); String Archivo =JOptionPane. showInputDialog("Nombre de la imagen para Buscar el pixel \n Tiene que se png"); int contador=0; Coversion C = new Coversion(); //Agrupar arreglo = new String[Nueva. getWidth()][Nueva. getHeight()]; for(int x=0;x<=Nueva.getWidth()-1 ;x++){ for(int y=0;y<=Nueva.getHeight()-1;y++){ String val = Integer. toHexString(Nueva. getRGB(x,y ) & 0x00ffffff ). toString(); arreglo[x][y]=val; } } AgrupamientoVecinos objeto=new AgrupamientoVecinos(); int GruposTotales=objeto.Agrupar(arreglo,PixelBuscar,true,null); JOptionPane. showMessageDialog(null, "Termino de Buscar en total fueron " + GruposTotales + " grupos"); //fin de Agrupar for(int x=0;x<=Nueva.getWidth()-1 ;x++){ for(int y=0;y<=Nueva.getHeight()-1;y++){ String val = Integer. toHexString(Nueva. getRGB(x,y ) & 0x00ffffff ). toString(); if(val.equals(PixelBuscar)){ Cordenadas=Cordenadas + " (" + x+","+y+") "; contador++; g.fillOval(x, y, 10, 10); } } } //JOptionPane.showMessageDialog(null,"Tiene " + contador + " elementos que buscas"); //JOptionPane.showMessageDialog(null,"Cordenadas " + Cordenadas); if (contador != 0){ try { ImageIO. write(Nueva, "jpg", new File("Resultado.png")); System. out. println("Error de escritura"); } Resultado. setIcon(new ImageIcon("Resultado.png")); JOptionPane. showMessageDialog(null, "Numero de Pixeles involucrados " + contador ); }else{ JOptionPane. showMessageDialog(null, "No se encontro ningun patron"); } } } class Coversion { } else { image.getWidth(null), image.getHeight(null), Graphics g = bufferedImage. createGraphics(); g.drawImage(image,0,0,null); g.dispose(); return( bufferedImage ); } } } class AgrupamientoVecinos{ public int Agrupar (String ArregloDeBusqueda [][], String ValorABuscar, boolean RenombradoAutomaticoGrupos, String ValorAModificar ){ int grupos=0; arreglo=ArregloDeBusqueda; ValorNuevo=ValorAModificar; ValorViejo=ValorABuscar; for(int yx=0;yx<ArregloDeBusqueda.length;yx++){ for(int yy=0;yy<ArregloDeBusqueda[0].length;yy++){ if(ArregloDeBusqueda[yx][yy].equals(ValorViejo)){ if(RenombradoAutomaticoGrupos==false){ grupos++; this.BuscarVecino(yx,yy); }else{ grupos++; ValorNuevo =Integer. toString(grupos ); this.BuscarVecino(yx,yy); } } } } return grupos; } private void BuscarVecino(int x,int y){ arreglo[x][y]=ValorNuevo; if(arreglo[x][y-1].equals(ValorViejo)){ BuscarVecino(x,y-1); } if(arreglo[x-1][y-1].equals(ValorViejo)){ BuscarVecino(x-1,y-1); } if(arreglo[x-1][y].equals(ValorViejo)){ BuscarVecino(x-1,y); } if(arreglo[x-1][y+1].equals(ValorViejo)){ BuscarVecino(x-1,y+1); } if(arreglo[x][y+1].equals(ValorViejo)){ BuscarVecino(x,y+1); } if(arreglo[x+1][y+1].equals(ValorViejo)){ BuscarVecino(x+1,y+1); } if(arreglo[x+1][y].equals(ValorViejo)){ BuscarVecino(x+1,y); } if(arreglo[x+1][y-1].equals(ValorViejo)){ BuscarVecino(x+1,y-1); } } }
PERO para que sirve agrupar los patrones??????????? BIEN FACIL PARA FORMAR FIGURAS COMPLETAS, Y EN LUGAR DE QUE TE DIGA QUE EXISTEN 200 PIXELES DE ROJOS... TE DIRA QUE EXISTEN DOS MANZANAZ YA QUE ABRA AGRUPADO LOS PIXELES..... :p :p eSPERO QUE LES SIRVA SU AMIGO CYBERSERVER
|
|
|
63
|
Programación / Java / Re: Agrupamiento de Nodos Vecino en un Arreglo (Mineria de Datos)
|
en: 2 Julio 2010, 21:52 pm
|
Y si eres de aquellos que solo quieres usar el metodo y no complicarte con constructores y bucles y un sin fin de cosas aqui esta el metodo. class AgrupamientoVecinos{ public int Agrupar (String ArregloDeBusqueda [][], String ValorABuscar, boolean RenombradoAutomaticoGrupos, String ValorAModificar ){ int grupos=0; arreglo=ArregloDeBusqueda; ValorNuevo=ValorAModificar; ValorViejo=ValorABuscar; for(int yx=0;yx<ArregloDeBusqueda.length;yx++){ for(int yy=0;yy<ArregloDeBusqueda.length;yy++){ if(ArregloDeBusqueda[yx][yy]==ValorViejo){ if(RenombradoAutomaticoGrupos==false){ grupos++; this.BuscarVecino(yx,yy); }else{ grupos++; ValorNuevo =Integer. toString(grupos ); this.BuscarVecino(yx,yy); } } } } return grupos; } private void BuscarVecino(int x,int y){ arreglo[x][y]=ValorNuevo; if(arreglo[x][y-1]==ValorViejo ){ BuscarVecino(x,y-1); } if(arreglo[x-1][y-1]==ValorViejo){ BuscarVecino(x-1,y-1); } if(arreglo[x-1][y]==ValorViejo){ BuscarVecino(x-1,y); } if(arreglo[x-1][y+1]==ValorViejo){ BuscarVecino(x-1,y+1); } if(arreglo[x][y+1]==ValorViejo){ BuscarVecino(x,y+1); } if(arreglo[x+1][y+1]==ValorViejo){ BuscarVecino(x+1,y+1); } if(arreglo[x+1][y]==ValorViejo){ BuscarVecino(x+1,y); } if(arreglo[x+1][y-1]==ValorViejo){ BuscarVecino(x+1,y-1); } } }
y para poder usarlo solo necesitas escribir estas pocas lineas AgrupamientoVecinos objeto=new AgrupamientoVecinos(); int GruposTotales=objeto.Agrupar(arreglo,"1",true,null); JOptionPane. showMessageDialog(null, "Termino de Buscar en total fueron " + GruposTotales + " grupos");
E aqui el ejemplo completo de como usarlo import javax.swing.*; public class Agrupamiento { public static void main (String[] args ) { int grupos=1; for(int yx=0;yx<=9;yx++){ for(int yy=0;yy<=9;yy++){ arreglo[yx][yy]="0"; } } arreglo[3][2]="1"; arreglo[3][3]="1"; arreglo[4][2]="1"; arreglo[2][4]="1"; arreglo[4][4]="1"; arreglo[6][6]="1"; arreglo[6][7]="1"; arreglo[6][2]="1"; arreglo[8][5]="1"; AgrupamientoVecinos objeto=new AgrupamientoVecinos(); int GruposTotales=objeto.Agrupar(arreglo,"1",true,null); JOptionPane. showMessageDialog(null, "Termino de Buscar en total fueron " + GruposTotales + " grupos"); //Comprobacion de los grupos for(int yx=0;yx<=9;yx++){ for(int yy=0;yy<=9;yy++){ if(arreglo[yx][yy].equals( "0" )==false ){ JOptionPane. showMessageDialog(null, "Encontre Agrupaciones con numero "+ arreglo [yx ][yy ] + " en " + yx + "," + yy ); } } } } }
saludos
|
|
|
64
|
Programación / Java / Re: Agrupamiento de Nodos Vecino en un Arreglo (Mineria de Datos)
|
en: 2 Julio 2010, 19:42 pm
|
que bueno que les gusto, para muchos esto es aburrido y sin chiste pero para muchos otros es la base de muchas cosas: Aqui les traigo otra cosita que le agregue que es........Agrupamiento con numeros, esto quiere decir que a cada grupo que tenga vecinos sercanos se les va a poner un numero, y entre mas nodos conectados tengas como vecinos o alejados unos de otros mas grupos vas a tener. import javax.swing.*; public class Agrupamiento { public static void main (String[] args ) { int grupos=1; for(int yx=0;yx<=9;yx++){ for(int yy=0;yy<=9;yy++){ arreglo[yx][yy]="0"; } } arreglo[3][2]="1"; arreglo[3][3]="1"; arreglo[4][2]="1"; arreglo[2][4]="1"; arreglo[4][4]="1"; arreglo[6][6]="1"; arreglo[6][7]="1"; for(int yx=0;yx<=9;yx++){ for(int yy=0;yy<=9;yy++){ if(arreglo[yx][yy]=="1"){ AgrupamientoVecinos objeto =new AgrupamientoVecinos (arreglo, "1", Integer. toString(grupos )); objeto.BuscarVecino(yx,yy); grupos++; } } } JOptionPane. showMessageDialog(null, "Termino de Buscar"); for(int yx=0;yx<=9;yx++){ for(int yy=0;yy<=9;yy++){ if(arreglo[yx][yy].equals( "0" )==false ){ JOptionPane. showMessageDialog(null, "Encontre Agrupaciones con numero "+ arreglo [yx ][yy ] + " en " + yx + "," + yy ); } } } } } class AgrupamientoVecinos extends Agrupamiento{ public AgrupamientoVecinos (String ArregloDeBusqueda [][], String ValorABuscar, String ValorAModificar ){ arreglo=ArregloDeBusqueda; ValorNuevo=ValorAModificar; ValorViejo=ValorABuscar; } void BuscarVecino(int x,int y){ arreglo[x][y]=ValorNuevo; if(arreglo[x][y-1]==ValorViejo){ BuscarVecino(x,y-1); } if(arreglo[x-1][y-1]==ValorViejo){ BuscarVecino(x-1,y-1); } if(arreglo[x-1][y]==ValorViejo){ BuscarVecino(x-1,y); } if(arreglo[x-1][y+1]==ValorViejo){ BuscarVecino(x-1,y+1); } if(arreglo[x][y+1]==ValorViejo){ BuscarVecino(x,y+1); } if(arreglo[x+1][y+1]==ValorViejo){ BuscarVecino(x+1,y+1); } if(arreglo[x+1][y]==ValorViejo){ BuscarVecino(x+1,y); } if(arreglo[x+1][y-1]==ValorViejo){ BuscarVecino(x+1,y-1); } } }
entonces el arreglo ya agrupado quedaria asi: notaaaa: NO SE COMO HACER ESO DE "Usa las quotes de codigo en java para su mejor comprensión y analisis." :p
|
|
|
65
|
Programación / Java / Agrupamiento de Nodos Vecino en un Arreglo (Mineria de Datos)
|
en: 2 Julio 2010, 07:01 am
|
Para aquellos que les interesa agrupar nodos, ya sea para agrupar patrones individuales en uno solo si se cumple la condicion de que los nodos sean vecinos. Ejemplo muy sencillo pero muy practico: NOTA: Este ejemplo Remplaza los valores Agrupados con un Valor que uno especifica en la llamada al constructor. AgrupamientoVecinos objeto=new AgrupamientoVecinos(arreglo,"1","8");
Y el codigo es el siguiente: import javax.swing.*; public class Agrupamiento { public static void main (String[] args ) { for(int yx=0;yx<=9;yx++){ for(int yy=0;yy<=9;yy++){ arreglo[yx][yy]="0"; } } arreglo[3][2]="1"; arreglo[3][3]="1"; arreglo[4][2]="1"; arreglo[2][4]="1"; arreglo[4][4]="1"; arreglo[6][6]="1"; arreglo[6][7]="1"; AgrupamientoVecinos objeto=new AgrupamientoVecinos(arreglo,"1","8"); for(int yx=0;yx<=9;yx++){ for(int yy=0;yy<=9;yy++){ if(arreglo[yx][yy]=="1"){ objeto.BuscarVecino(yx,yy); } } } JOptionPane. showMessageDialog(null, "Termino de Buscar"); for(int yx=0;yx<=9;yx++){ for(int yy=0;yy<=9;yy++){ if(arreglo[yx][yy]=="8"){ JOptionPane. showMessageDialog(null, "Encontre desdepues en "+ yx + " y " + yy ); } } } } } class AgrupamientoVecinos extends Agrupamiento{ public AgrupamientoVecinos (String ArregloDeBusqueda [][], String ValorABuscar, String ValorAModificar ){ arreglo=ArregloDeBusqueda; ValorNuevo=ValorAModificar; ValorViejo=ValorABuscar; } void BuscarVecino(int x,int y){ arreglo[x][y]=ValorNuevo; if(arreglo[x][y-1]==ValorViejo){ BuscarVecino(x,y-1); } if(arreglo[x-1][y-1]==ValorViejo){ BuscarVecino(x-1,y-1); } if(arreglo[x-1][y]==ValorViejo){ BuscarVecino(x-1,y); } if(arreglo[x-1][y+1]==ValorViejo){ BuscarVecino(x-1,y+1); } if(arreglo[x][y+1]==ValorViejo){ BuscarVecino(x,y+1); } if(arreglo[x+1][y+1]==ValorViejo){ BuscarVecino(x+1,y+1); } if(arreglo[x+1][y]==ValorViejo){ BuscarVecino(x+1,y); } if(arreglo[x+1][y-1]==ValorViejo){ BuscarVecino(x+1,y-1); } } }
Nota: Si quieres que comienze a agrupar los nodos vecinos desde una cordenada especifica y modifique los numero 1 a 8 del arreglo "arreglo": AgrupamientoVecinos objeto=new AgrupamientoVecinos(arreglo,"1","8"); objeto.BuscarVecino(3,4)
Si quieres que busque los nodos 1 en el arreglo "arreglo" y que de aii comienze a agrupar y a modificar los 1 por los 8: AgrupamientoVecinos objeto=new AgrupamientoVecinos(arreglo,"1","8"); for(int yx=0;yx<=9;yx++){ for(int yy=0;yy<=9;yy++){ if(arreglo[yx][yy]=="1"){ objeto.BuscarVecino(yx,yy); } } }
Atte: CyberServer Abel de la Fuente Arriaga Saludos desde Atlacomulco eaea EDITO-DEBCI: Usa las quotes de codigo en java para su mejor comprensión y analisis.
|
|
|
68
|
Programación / Java / Problema con librerias dentro de lib\ en Java web start
|
en: 13 Junio 2010, 22:11 pm
|
Hola amigos, veran apenas comienzo en la programacion con JWS o mejor dicho implementacion de mis codigos en este tema. primero que nada les hablare lo que estoy haciendo. Cree un proyecto bien sencillo utilizando las apis CamaraWeb.jar jmf.jar y compile mi proyecto en netbeans entonces me quedo asi mi estructura. proyecto: -Lib -CamaraPruebas.jar ---CamaraWeb.jar ----jmf.jar como sabemos las clases que utilizamos en el proyecto se guardan dentro de la carpta lib que esta adjunta al .jar principal que en este caso es CamaraPruebas.jar Veran cree mi jnlp desde netbeans como ustedes sabran este Ide te ayuda infinitamente en todo y con este pude FIRMAR automaticamente todas las librerias de las que depende mi proyecto mas mi CamaraPruebas.jar. Despues de esto subi los archivos junto con la carpata de libreria a una pagina web que es esta: http://crow.webcindario.com/launch.htmlpues todo parece bien no me muestra ningun error pero el problema aparece cuando ejecuto el jnlp y hace uso de las librerias que estan dentro de la carpeta lib pues me muestra el siguiente mensaje pero no comprendo por que si mis librerias tambien estan firmadas. el codigo de mi jnlp es el siguente: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <jnlp codebase="http://crow.webcindario.com/" href="launch.jnlp" spec="1.0+"> <information> <title>CamaraPruebas</title> <vendor>Los_flais</vendor> <homepage href=""/> <description>CamaraPruebas</description> <description kind="short">CamaraPruebas</description>
<offline-allowed/> </information> <security> <all-permissions/> </security> <resources> <j2se version="1.5+"/> <jar eager="true" href="CamaraPruebas.jar" main="true"/>
<jar href="lib/CamaraWeb.jar"/> <jar href="lib/jmf.jar"/> </resources> <application-desc main-class="Uno">
</application-desc> </jnlp>
Lo raro es que la aplicacion si funciona como aplicacion de escritorio pero no como jws..... Espero que alguien pueda ayudarme, de antemano gracias
|
|
|
69
|
Programación / Java / Re: Como crear un paquete .jar en java
|
en: 4 Junio 2010, 04:56 am
|
Gracias amigo, oie y k crees? k tambien si solo le das lo siguiente funciona!!!! Manifest-Version: 1.0 Ant-Version: Apache Ant 1.7.1 Created-By: 1.5.0_20-141 (Apple Inc.) Main-Class: A.B Gracias
|
|
|
70
|
Programación / Java / [SOLUCIONADO]Como crear un paquete .jar en java
|
en: 3 Junio 2010, 21:02 pm
|
Hola amigos, alguien sabe como puedo crear un paquete empaquetado en un .jar en java???
supongamos que ya tengo mi paquete que es A.B.ClaseEjemplo (A\B\ClaseEjemplo.class) pero ahora quiero empaquetarlo en un .jar para poder hacerlo un api!!
Como puedo hacerlo existe algun comando en el JDK que permita generarlo
Utilizo Jcreator
|
|
|
|
|
|
|