:DHola amigos, para todos aquellos que quieran comerce el mundo y como gran sueño como yo tengan en ser investigadores algun dia!
Aqui les traigo un programa super basico de Reconocimiento de patrones en una imagen. lo cree por conviccion y por querer saber como funciona esto.!!!
Pero para que puedo ocupar este programa?:
La pregunta me la han hecho muchas personas y la respuesta es ilimitada! la pregunta seria donde no puedo ocuparla
Un ejemplo es en la inteligencia artificial supongamos que creamos un robor que aprender a distinguir en una mesa llena de fruta una manzana. como sabes o como hacele entender al robot k es una manzana y que es diferente a las demas.!!
con este programa de reconocimiento de patrones. esto es muy basico pero abre la puerta a grandes investigaciones k se estan asiendo sobre esto.
Comenzemos.
Primero que nada nuestro proyecto solo reconoce patrones en imagenes .png esto es por el formato y el tipo de imagen de mapa de bits que no cambiar su estructura cuando cambiamos su tamaño o modificamos un pixel, ya que la mayoría de las otras extensiones al cambiar un pixel cambiar todo lo demas
Este es el codigo sencillo y pequeño
La imagen original queda asi:
Si nos damos cuenta emos escrito en la imagen pequeños puntos blancos que en este caso es el patron que estamos buscando
Despues de haber pasado nuestro programa por la imagen y haber especificado buscar el patron blanco!!! no da esta imagen como resultado
Bingo!!! encontro los patrones reconocio lo que estaba buscando y lo señalo!!!
Para muchos funcinal, para muchos novato, para muchos perdida de tiempo. ustedes que opinan???
NOTA: El unico parametro que tienes que cambiar en el codigo es
tendras que cambiar los limites de X y Y segun el numero de pixeles de imagen. recuerda que es si la imagen es de 450X332 tienes que poner en los limites de los for anidado 449X331 pues comenzamos de 0
Saludos y espero que les sirva su amigo CyberServer.
Este proyecto todavia no lo muestro asi que si eres del Tecnologico de Jocotitlan ( Tesjo) no se te ocurra copiarlo maldito PIRATA!!! jajaja ntc saludos.!!
NOTOTA: PERDON POR LA ESTRUCTURA "PUERCA DEL CODIGO" Reconozco QUE ES UNA PORQUERIA EN CUANTO A LIMPIEZA PERO ME KEME LA CABEZA PENSANDO COMO HACERLE Y ME OLVIDE DE LA INGENIERIA DE SOFTWARE :p
Aqui les traigo un programa super basico de Reconocimiento de patrones en una imagen. lo cree por conviccion y por querer saber como funciona esto.!!!
Pero para que puedo ocupar este programa?:
La pregunta me la han hecho muchas personas y la respuesta es ilimitada! la pregunta seria donde no puedo ocuparla
Un ejemplo es en la inteligencia artificial supongamos que creamos un robor que aprender a distinguir en una mesa llena de fruta una manzana. como sabes o como hacele entender al robot k es una manzana y que es diferente a las demas.!!
con este programa de reconocimiento de patrones. esto es muy basico pero abre la puerta a grandes investigaciones k se estan asiendo sobre esto.
Comenzemos.
Primero que nada nuestro proyecto solo reconoce patrones en imagenes .png esto es por el formato y el tipo de imagen de mapa de bits que no cambiar su estructura cuando cambiamos su tamaño o modificamos un pixel, ya que la mayoría de las otras extensiones al cambiar un pixel cambiar todo lo demas
Este es el codigo sencillo y pequeño
Código (java) [Seleccionar]
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) {
JLabel Resultado= new JLabel();
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;
String Cordenadas=null;
ImageIcon Imagen = new ImageIcon(Archivo + ".png");
Coversion C = new Coversion();
BufferedImage Nueva = C.toBufferedImage(Imagen.getImage());
Graphics g = Nueva.getGraphics();
for(int x=0;x<=449;x++){
for(int y=0;y<=331;y++){
String val= Integer.toHexString(Nueva.getRGB(x,y) & 0x00ffffff ).toString();
if(val.equals(PixelBuscar)){
Cordenadas=Cordenadas + " (" + x+","+y+") ";
contador++;
g.setColor(Color.yellow);
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"));
} catch (IOException e) {
System.out.println("Error de escritura");
}
Resultado.setIcon(new ImageIcon("Resultado.png"));
JOptionPane.showMessageDialog(null,Resultado);
}else{
JOptionPane.showMessageDialog(null,"No se encontro ningun patron");
}
}
}
class Coversion {
BufferedImage toBufferedImage(Image image) {
if( image instanceof BufferedImage ) {
return( (BufferedImage)image );
} else {
image = new ImageIcon(image).getImage();
BufferedImage bufferedImage = new BufferedImage(
image.getWidth(null),
image.getHeight(null),
BufferedImage.TYPE_INT_RGB );
Graphics g = bufferedImage.createGraphics();
g.drawImage(image,0,0,null);
g.dispose();
return( bufferedImage );
}
}
}
La imagen original queda asi:
Si nos damos cuenta emos escrito en la imagen pequeños puntos blancos que en este caso es el patron que estamos buscando
Despues de haber pasado nuestro programa por la imagen y haber especificado buscar el patron blanco!!! no da esta imagen como resultado
Bingo!!! encontro los patrones reconocio lo que estaba buscando y lo señalo!!!
Para muchos funcinal, para muchos novato, para muchos perdida de tiempo. ustedes que opinan???
NOTA: El unico parametro que tienes que cambiar en el codigo es
Código [Seleccionar]
for(int x=0;x<=449;x++){
for(int y=0;y<=331;y++){
tendras que cambiar los limites de X y Y segun el numero de pixeles de imagen. recuerda que es si la imagen es de 450X332 tienes que poner en los limites de los for anidado 449X331 pues comenzamos de 0
Saludos y espero que les sirva su amigo CyberServer.
Este proyecto todavia no lo muestro asi que si eres del Tecnologico de Jocotitlan ( Tesjo) no se te ocurra copiarlo maldito PIRATA!!! jajaja ntc saludos.!!
NOTOTA: PERDON POR LA ESTRUCTURA "PUERCA DEL CODIGO" Reconozco QUE ES UNA PORQUERIA EN CUANTO A LIMPIEZA PERO ME KEME LA CABEZA PENSANDO COMO HACERLE Y ME OLVIDE DE LA INGENIERIA DE SOFTWARE :p