2010-04-15 11 views
5

Estoy trabajando en un proyecto para capturar imágenes a través de una cámara web en un intervalo de tiempo predefinido, comparando continuamente las imágenes a una plantilla (buena imagen) y obtengo un error si la diferencia es> tolerancia conjunto.Precisamente compare 2 imágenes para diferencias usando OpenCV

Estoy trabajando con OpenCV. Me gustaría recibir consejos sobre cómo debo hacerlo, p. mejor método, etc.

Apreciar si alguien puede ayudarme en esto. Gracias.

Respuesta

3

Una forma fácil es simplemente tomar la L2-norma entre los pares de imágenes:

double l2_norm = cvNorm(img1, img2); 

Usted tendrá que experimentar con la configuración del umbral adecuado. Por supuesto, este método no es robusto a los cambios de iluminación, cambios en el punto de vista, etc. pero es simple y rápido.

+0

Hola, me las arreglé para obtener mi proyecto, utilizando el retorno de la inversión seleccionado a través del arrastre del mouse como la plantilla para hacer coincidir con los marcos de video en ejecución continua. Me gustaría preguntar, ¿cómo obtengo el resultado de coincidencia de plantilla, p. si se encuentra la plantilla -> functionA(), si la plantilla no se encuentra -> functionB(). Apreciar si alguien me puede aclarar sobre este asunto. ¡Gracias por adelantado! – cys

+0

Debe usar cvMatchTemplate() para comparar la plantilla con su imagen y luego buscar en la imagen resultante la ubicación y el valor mínimos o máximos (dependiendo de si coincide según la mse o la correlación). Deberá establecer un umbral en este valor para determinar a qué parche sigue su alogirthm. – jeff7

Cuestiones relacionadas