comparacion de firmas

crackcito_
27 de Abril del 2006
nesesito ayuda en lo q consierne a la comparacion de firmas ....esto es q si leo un archivo jpg o bitmap como hago pa comparar dos firmas q estan almacenadas en dibujos para decir q son iguales.... alguna pista

chuidiang
27 de Abril del 2006
Hola:

Lo que quieres es muy complejo y no hay algoritmo que de resultado bueno 100%

Suponiendo que las dos imágenes son muy parecidas, un posible algoritmo es hacer una correlación entre ambas.

Lee ambos ficheros y guarda los valores de los pixels en un array. Cada imagen en un array de doubles (x e y). Deberían ser del mismo tamaño para obtener arrays iguales. Si no son iguales, deberás escalar una de ellas para que tenga el mismo tamaño que la otra.

"Normaliza" cada array. Esto se hace para cada array calculando el cuadrado de cada uno de los valores, sumándolos todos. Luego raiz cuadrada de la suma. El valor que te sale lo llamamos módulo del array.

double modulox = sqrt (x[0]*x[0] + x[1]*x[1] + ... x[n]*x[n]);
idem para y

Divide todos los valores del array por su módulo. Deben quedarte todos los elementos con decimales y de valor menor que 1.

x[0] = x[0]/modulo;
x[1] = x[1]/modulo;
...

Ahora multiplica los dos arrays elemento a elemento entre si y sumalo todo

suma = x[0]*y[0] + x[1]*y[1] + ...

(Evidentemente, todo esto con bucles. Lo pongo así para mas claridad).

Si suma sale 1.0 es que ambas imágenes son exactamente iguales. Si sale 0.0 es que no se parecen en nada. Ahora ya es cuestión tuya decidir a partir de que valor (0.8 por ejemplo) las consideras iguales.

Se bueno