![]() |
Busqueda por IMAGEN
Alguein sabe como puedo hacer una busqueda por imagen, foto.
Ejemplo ingreso determinada foto y que el sistema realize la busqueda como cualquier otro campo y encuentre las concurrencias. Saludos. |
Tal vez deberías guardar un "CRC" de la foro y buscar por el campo de CRC en lugar del de la foto. Similar a como se calcula un CRC o un MD5 de un archivo.
Lo que ahora mismo no se me ocurre es cómo calcular ese CRC/MD5. |
Y que tal haciendo comparaciones de imagenes, aqui una solucion dada por seoane:
http://www.clubdelphi.com/foros/show...92&postcount=8 y esta otra por Delphius: http://www.clubdelphi.com/foros/showthread.php?t=41549 Saludos. |
Cita:
Ese código explora toda la imagen a lo largo y ancho. Y reiterar el proceso demasiadas veces consume mucho tiempo. La mejor técnica consiste en lo que dice Neftali, tener un valor clave o identificador a cada imagen. Este identificador puede obtenerse cuando se carga la imagen. EDITO: Ese hilo que abri Neftali solo sirve si se emplea DUnit. DUnit es una herramienta CASE que sirve para generar casos de prueba. No otra cosa. Si empleas DUnit sirve para poner a prueba tus módulos, tus funciones y otras cosas. A los fines prácticos lo que comenta Neftali es la opción recomendada. Saludos, |
Vale, pues sabes entonces de alguna manera como obtener el valor CRC de la imagen, con el perdon del amigo connor si me entrometo, pero ahora este tema me ha llamado la atención, pues he estado pensando para un futuro proyecto donde tenga que ver con la busqueda de imagenes y comparaciones.
Saludos. |
Hola!
Algunas referencias a tener en cuenta: CRC MD5 Hash , Sha, Md5 - Página de seoane Para mayor detalles buscar entre los hilos de seoane. Saludos, |
Cita:
Saludos. |
Hoy me encontraste un poco inspirado y mi mente medio un ejemplo sencillo de lo que podría ser un algoritmo generador de clave.
No tiene mucha seguridad, ni nada por el estilo... Creería que funcionaría siempre y cuando las imagenes sean muy diferentes. Habría que probar. La idea que tuve es recorrer la imagen y ponderar los valores RGB según su posición. El algoritmo que concebí es como sigue:
siendo TRGB la siguiente estructura:
Y un ejemplo de su uso:
Como notarás, es un algoritmo demasiado simple... y la clave que genere dependerá mucho del tamaño de la imagen. Pues, cuanto más grande sea, más alto será el valor conseguido. Si tu deseas obtener un algoritmo que genere claves de un determinado tamaño podría refinarse... Es tan sólo otra alternativa a tener en cuenta si es que los algoritmos y las fuentes que te pasé te resultan un tanto complicadas. Puede que otros foristas den un aporte alternativo y/o que esta función sea de base para conseguir algo un poco más elaborado y menos complicado que un RCR, MD5, Hash, etc. Saludos, |
Pues a menos que quieras una equivalencia EXACTA ninguno de los metodos anteriores te va a servir.
Sin embargo, quieres buscar el contenido BINARIO o quieres simplemente buscar informacion de la imagen? Porque en lo segundo es muy simple: nombre, fecha, atributos, etc.. son cadenas de texto. Existen algoritmos especiales para buscar imagenes pero ya son otro cuento. |
Vaya, veo que si estas inspirado hoy, una pregunta, si se calcula la de una imagen varias veces se genera una misma clave?
Saludos. |
Una variacion de un bit alterara la clave. Solo serviria para una coincidencia exacta.
|
Cita:
SAludos. |
Cita:
Haz dicho algo clave, tal vez con sólo fijarse en los atributos basta. Pero si es que realmente se desea tener un identificador único para cada imagen, hay que tener un buen algoritmo. Porque los atributos podrían cambiarse, mientras que la imagen puede ser la misma (o bastante similar) Cita:
Como dije, necesitaría análisis, pues por más que otra imagen sea distinta no se garantiza que se obtendrá un valor distinto. Es por ello que para impedir ciertas similitudes, pondero las sumas. Pero no esto no es suficiente. Por ejemplo, si la suma da 300 y la ponderación es 60, es lo mismo que si la suma es 60 y la ponderación sea 300. ¿Se entiende? No es un algoritmo demasiado fuerte. Pero puede que sea de utilidad para comenzar. Saludos, |
Vale, se entiende perfectamente, solo me queda sacar un tiempo para ver si lo puedo aplicar en el proyecto. De nuevo gracias amigo Delphius.
Saludos |
Si estas buscando una coincidencia exacta, metele un hash MD5 o un SHA.
Si quieres una excelente libreria de todo estos temas: http://sourceforge.net/projects/openstrsecii/ Es la version open source de http://www.streamsec.com/products_strsectools.asp y me consta que el autor es un genio de estos temas. |
Este tema está muy interesante. Sin embargo, el compañero connor no ha especificado si lo que intenta hacer es buscar una imagen "dentro de la DB", en otras palabras, buscar una existencia exacta de la imagen, que para esto ya todos los compañeros han posteado códigos muy útiles.
Por otro lado, la intención de connor puede ser buscar imágenes similares, el su post original, menciona "foto" esto me hace suponer que andará buscando algún tipo de reconocimiento facial o algo por el estilo. Si es este el caso, de solo imaginarlo, es algo demasiado difícil y te recomenzaría que paralelamente consultes a google a ver que ayuda puedas encontrar. Cualquiera que sea tu propósito, te recomiendo que apliques la sugerencia de neftalí. Saludos. |
Cita:
Si ese es el caso, que se prepare porque el problema es complejo. Si no sabré yo:D:p:o. No es fácil sentarse y comprender el tema. Pues en realidad lo que se desea y se guarda en estos sistemas es una representación numérica de las imagenes. Para ser exacto un numerito de obedece a ciertas propiedades del algebra matricial (que es el corazón y la base donde descansa todo el sistema). Palabra clave en estos asuntos: EigenFace, FisherFace. Y si, lamentablemente debe consultar en Google (o su buscador favorito) y preparse con el inglés porque en castellano hay poco y nada. Y me animo a decir que en incluso en inglés no hay demasiado que urgar. Saludos, |
Cita:
Cita:
|
¿connor no va a aparecer para dar su opinión?:confused:
No veo interés de su parte con el hilo. Si bien ya muchos estamos coincidiendo con el hecho de que usar SHA, Hash, MD5 o alguno de esos son útiles en estos casos, seria oportuno que connor volviera y ofrezca su punto de vista del asunto. Saludos, |
Gracias por las aportaciones son muy interesantes. Si lo que deseo es hacer busquedas en un Table.DB
Por ejemplo tengo una tabla con campos como: codigo, nombres imagen, la idea es hacer busquedas por el campo imagen tendria tambien que indexar por el campo imagen, digamos ingreso una imagen cargandola del disco duro o ingresandola por un scanner. presionar un boton y que el sistema busque las coherencias asi como se hace con Table1.FindKey ó Table1.Nearest, pero en este caso lo haga con la imagen, con busquedas exactas y parciales, se podra hacer eso?. Saludos |
| La franja horaria es GMT +2. Ahora son las 13:24:24. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi