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
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 { "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(); for(int x=0;x<=449;x++){ for(int y=0;y<=331;y++){ 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 { } }else{ } } } class Coversion { } else { image.getWidth(null), image.getHeight(null), 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:
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