SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: CarMol en Viernes 19 de Septiembre de 2008, 22:50
-
Saludos.
Tengo un proyecto donde se encuentra en un picturebox1 un grupo de 8 imagenes mezcladas al azar y repetidas n veces y en otro picturebox2 se puede elejir una imagen, el programa debe buscar la imagen del picturebox2 en el picturebox1 y decir cuantas coincidencias ocurren. Las imagenes pueden cambiar. Estoy utilizando visual basic 6. Por favor ayudame a tener una idea de como poder hacerlo.
Gracias....
-
Bueno, lo primero que se me viene a la mente es que cada imagen debes asignarles un numero, por ejemplo, del 1 al 8... luego si lo que quieres es saber si las imagenes se encuentran en el otro picture solo debes revisar esos numeros.
Un poc mas claro...
imagina que estas imagenes las tienes almacenadas en un ImageList y que cada imagen estan enumaeradas con un numero del 1 al 8, piensa que estas imagenes se cargan por medio de un Randon en el Picture1, como por ejemplo, Int(8*Rnd()) [Solo ten encuenta la parte entera], luego estos numeros los vas almacenando en un array (arreglo, vector, como le llames), luego para saber que imagen se encuentra en el picture1, solo debes saber que numeros estan cargados en el arreglo.
Entiendes?, espero que te sirva...
Me avisas. B)
-
Gracias por tu ayuda Nilson, pero las imagenes que se cargan yo no se, es algo más parecido a identificar un rostro cualquiera en una calle llena de gente.
-
No te compliques la vida, simplemente compara la ruta de las imágenes. Si es el mismo, la imagen es la misma. Saludos.
-
Saludos.
Tengo un proyecto donde se encuentra en un picturebox1 un grupo de 8 imagenes mezcladas al azar y repetidas n veces y en otro picturebox2 se puede elejir una imagen, el programa debe buscar la imagen del picturebox2 en el picturebox1 y decir cuantas coincidencias ocurren. Las imagenes pueden cambiar. Estoy utilizando visual basic 6. Por favor ayudame a tener una idea de como poder hacerlo.
Gracias....
La idea de Mosquito, puede valerte perfectamente si las imágenes en efecto se han tomado de una dirección, basta pués con guardar una referencia a cada imagen en una lista y otra referencia numérica para manipularlo.
Si en cambio tienes imágenes que resultan de operaciones y que sólo constan en memoria o también si aún siendo diferentes rutas las imágenes están repetidas y por tanto no es factible reconocerlas or la ruta puedes recurrir a un barrido de píxeles aleatorios o en secuencia. De entrada no compares imágenes si su tamaño es distinto, y si su tamaño es igual entonces tom ´pixeles en diagonal cuando un píxel no coincida finaliza la comparación y se da por finalizado. Esto podrá ser más o menos satisfactorio en función de si existe mucho parecido entre ellas o no, es decir si son bastantes distintas excepto las que son iguales, el sistema será rápido si por el contrario existe un gran parecido como por ejemplo en un puzzle entonces es mejor compararlas por hashing, si las imágenes son muy grandes el proceso puede ser lento.
-
por tanto no es factible reconocerlas or la ruta
Que conste que yo he dicho que si tienen la misma ruta es la misma, lo que no implica que si tienen distinta ruta sean distintas. En condiciones normales (sin mucha complejidad) sí se daría la segunda posibilidad, aunque desde luego el método de comparación de Nebire es el más correcto y genérico (pero más lento). Tú verás cuál te conviene mejor.