![]() |
![]() |
![]() |
![]() |
![]() |
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
|
||||
|
||||
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 |
#7
|
||||
|
||||
Cita:
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#8
|
|||
|
|||
Y porque no obtener el hash md5 o sha de ambas y comparar estos para saber si son distintos o iguales...?
|
#9
|
||||
|
||||
Cita:
La otra alternativa es volcar a Streams ambos e invocar a CompareMem a ambos Streams pero esto también tiene su costo ya que estás duplicando la memoria utilizada, ¡Estás generando copias de los bitmpas originales!. En el enlace que ha puesto en StackOverflow se discutieron estas 2 alternativas. Saludos, |
#10
|
||||
|
||||
Cita:
![]() |
#11
|
||||
|
||||
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. |
#12
|
||||
|
||||
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. |
![]() |
|
|
![]() |
||||
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 |
![]() |
|