![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
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?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#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:
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#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.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#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 |
|