Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   comparar dos TImage (https://www.clubdelphi.com/foros/showthread.php?t=65537)

TomMB 23-12-2009 10:51:18

comparar dos TImage
 
Hola.
quisiera saber como se pueden comparar dos TImage p.e.

if Image1=Image2 then ....

Gracias.

Neftali [Germán.Estévez] 23-12-2009 11:57:59

¿Qué quieres comprara dos TImage o dos imágenes?

Entiendo que lo segundo.
Deberás compararlas Pixel a Pixel y determinar si hay alguno diferente.

TomMB 23-12-2009 15:50:31

Hola, te explico.
Después de capturar una imagen y meterla en un Timage, quiero que lo compare con otros TImagen que tienen diferentes imágenes cargadas.



Gracias.

Neftali [Germán.Estévez] 23-12-2009 16:35:10

Pues lo dicho, debes escanear la imagen y comparar los pixels 1 a 1. Debería bastar con dos For anidados, uno para recorrer filas y otro columnas:

Código Delphi [-]
  Image1.Picture.Bitmap.Canvas.Pixel[0,0] = 
    Image2.Picture.Bitmap.Canvas.Pixel[0,0];
  ...

Para optimizar puede revisar la ayuda sobre ScanLine.

Otra opción (que se me ocurre ahora) podría ser la de no verlas como imágenes sino como ficheros genéricos. Tal vez esta pueda resultar más rápida.
(1) Grabas la imagen 1 en un fichero temporal 1 y la imagen 2 enun fichero temporal 2.
(2) Calculas el CRC de ambos.
(3) comparas los CRC.

Ambos tipos de comparación en teoría funcionan bien, en la práctica piensa que con que sólo exista un pixel diferente en ambas imágenes te darán como diferentes; Y eso en la mayoría de los casos no es lo deseado.

Otro tema diferente es la utilización de algoritmos que permitan un % de error; De forma que si las imágenes son iguales en un 98% (por ejemplo) las considere iguales.


La franja horaria es GMT +2. Ahora son las 20:14:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi