FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
¿Cómo verificar que 2 imagenes son iguales o distintas?
Buen día
Me gustaría saber un metodo para comparar 2 imagenes y saber si son iguales o distintas. He visto unos ejemplos pero no me funcionan, espero me puedan ayudar. Gracias de antemano. |
#2
|
||||
|
||||
¿Qué ejemplos y por qué no funcionan?
|
#3
|
|||
|
|||
Estoy usando::
Código:
if Image1.Picture.Bitmap.Canvas.Pixels[0,0] = Image2.Picture.Bitmap.Canvas.Pixels[0,0] then begin showMessage('Iguales'); End; |
#4
|
|||
|
|||
También estoy usando un Timer
Código:
procedure TForm5.Button1Click(Sender: TObject); begin if Image1.Picture.Bitmap.Canvas.Pixels[0,0] = Image2.Picture.Bitmap.Canvas.Pixels[0,0] then begin showMessage('Iguales'); End; end; procedure TForm5.Timer1Timer(Sender: TObject); begin Image1.Picture.LoadFromFile('E:\Test.bmp'); end; |
#5
|
|||
|
|||
#6
|
||||
|
||||
Cita:
|
#7
|
||||
|
||||
Je, je, je... ya sé de dónde has tomado ese código
Pero si lo lees bien, habrás visto que pone: Debería bastar con dos For anidados, uno para recorrer filas y otro columnas: Tú estás comparando el primer pixel, tienes que recorrer toda la imagen para ir comparándola con la otra. |
#8
|
||||
|
||||
Cita:
|
#9
|
||||
|
||||
Una pregunta que tal vez parezca tonta...
¿Un único pixel diferente en las imágenes, debería devolver que son diferentes? O dicho de otra manera, ¿La comparación debe omitir pequeños cambios? Si la respuesta es que deben ser "exactas", creo que comparar pixel a pixel te será más lento que calcular un CRC o HASH del fichero y compararlos. Si la respuesta es que no (por ejemplo en aplicaciones de detección de movimiento) los métodos de comparación siguen otras técnicas un poco diferentes.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#10
|
||||
|
||||
Cita:
Calcular Hash o MD5 por ejemplo requiere de muchas más operaciones. Son operaciones consideradas "duras". Si ya de por si para calcular el hash o md5 se necesita leer el contenido binario, directamente que se lea la imagen y se haga el trabajo de comparar. Creo que no vale la pena emplear hash u otros, es más directo y menos lioso realizar una comparación. Si la comparación permite ciertos cambios o aproximación entre ambas, o como en el caso de detección de movimientos, allí las cosas si se complican y hay que optar por otras soluciones como dices. El componente que ofrece la página que a puesto MAXIMUM creo que hace estos tipos de cosas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿Cómo verificar clave ingresada por usuario? | titooo | MS SQL Server | 9 | 24-04-2013 17:07:28 |
Como verificar si un e-mail existe? | pnsd_89 | Internet | 2 | 19-07-2011 18:35:26 |
Detectar en un label registros con valores iguales y mostrarlo como uno solo | Rofocale | Varios | 7 | 16-06-2011 09:48:20 |
como verificar el cambio de estado o valor de una variable | gonza_619 | Varios | 7 | 06-09-2010 20:48:41 |
Como verificar si un txt existe? | danytorres | Varios | 1 | 02-12-2003 15:51:20 |
|