comparaison entre deux images

comparaison entre deux images - Delphi/Pascal - Programmation

Marsh Posté le 30-05-2008 à 18:15:24    

Bonjour à tous  
 
je veux comparer entre une image  capter à partir d'une webcam avec un ensemble d'images stockées dans une base de donnée afin de détecter si l'image capter représente une situation connue c-a-d deja stocké ds notre bdd; s'il n y pas de changement alors l'image capter sera identique avec une image de notre bdd, pour cela je fais la soustraction de ces deux images (image1.picture.bitmap.canvas.pixels[i,j]-imageBDD.picture.bitmap.canvas.pixels[i,j]) , le résultat = 0 si les deux pixels sont identiques , j'applique la procedure sur touts les pixels.
le problème c'est la différence de la lumière, même si les deux image sont identiques coté informations y a un changement dans le niveau de la lumière même entre deux images successive captés par la cam j'ai trouvé une difference dans la lumière, ce phénomène est dépend de la cam, je ne sais pas koi faire pour resoudre le probleme , je pense à appliquer des filtres???? aidez moi

Reply

Marsh Posté le 30-05-2008 à 18:15:24   

Reply

Marsh Posté le 30-05-2008 à 20:25:40    

Salut
 
question peut être c*n: tu peut pas comparer les donées RVB de chaque pixel?
 
y a bien des points communs quand meme

Reply

Marsh Posté le 30-05-2008 à 23:06:36    

oui mais pour décider si deux images sont identiques on utilise généralement un seuil , si le nombre de pixels différents est inférieur au seuil alors on conclu qu'il n y a pas une différence entre les deux image sinon les deux images alors ne sont pas identiques, cette méthode est connu dans le domaine de traitement d'image , mais mon probleme c le niveau de la lumiere ki change , il faut trouver un filtre qui peu réglé le probleme !!!!!!!!

Reply

Marsh Posté le 31-05-2008 à 10:50:46    

A mon avis le plus "simple" c'est que tu passes par une phase d'apprentissage .. Tu rentres dans ta bdd quelques centaines de snapshot pris pendant des moments différents de la journée et après tu te bases sur ça pour savoir si qqch à changé.
Sinon tu peux utiliser un filtre se basant sur le fait que la lumière va vraisemblablement varier de manière uniforme dans la pièce mais ça devient déjà plus chaud..

Reply

Marsh Posté le 01-06-2008 à 19:15:52    

ok merci , je cherche dans les filtres sinon je serais obliger de faire une reconnaissance

Reply

Marsh Posté le 02-06-2008 à 14:00:59    

As tu regardé du coté des coefficient de corrélation ?
Avec quelques tests tu devrais pouvoir caler une valeur seuil du coeff à partir de laquelle deux images se ressemblent vraiment.
Ca te permet de te donner des marges de liberté sur la luminosité par exemple puisque tu n'auras pas un résultat binaire : c'est la meme image ou non.
 
C'était utilisé dans les progs de décodage pirate de canal + : la systeme de cryptage de canal consiste à mélanger les lignes d'une image à l'aide du hertzien entrelacé. Le décodage consistait à calculer (pour une image donnée avec les lignes dans le désordre) le coeff de corrélation entre chacune des lignes et les remettre dans l'ordre en fonction des ce coeff. (cest pour ça que ça marchait pas tres bien pour les matchs de foot quand la camera était sur le terrain tout vert :D ce qui sauvait sur certains matchs c'était le cadrillage de la pelouse du à la tondeuse qui permettait de bien remettre les lignes dans l'ordre ;p )


Message édité par rengzehn le 02-06-2008 à 14:02:42
Reply

Marsh Posté le 03-06-2008 à 00:33:33    

et comment calculer le coefficient de corrélation?

Reply

Marsh Posté le 03-06-2008 à 11:26:49    

Tu sélectionnes des lignes dans chacune de tes images, tu accèdes au niveau de gris (faut regarder comment l'objet TColor est foutu, dans le dernier octet me semble) et tu calcules le coeff de correlation entre ces deux lignes avec la formule qui va bien que tu trouveras sur wikipedia.

Reply

Marsh Posté le 04-09-2011 à 10:55:49    

zoheir13k a écrit :

Bonjour à tous  
 
je veux comparer entre une image  capter à partir d'une webcam avec un ensemble d'images stockées dans une base de donnée afin de détecter si l'image capter représente une situation connue c-a-d deja stocké ds notre bdd; s'il n y pas de changement alors l'image capter sera identique avec une image de notre bdd, pour cela je fais la soustraction de ces deux images (image1.picture.bitmap.canvas.pixels[i,j]-imageBDD.picture.bitmap.canvas.pixels[i,j]) , le résultat = 0 si les deux pixels sont identiques , j'applique la procedure sur touts les pixels.
le problème c'est la différence de la lumière, même si les deux image sont identiques coté informations y a un changement dans le niveau de la lumière même entre deux images successive captés par la cam j'ai trouvé une difference dans la lumière, ce phénomène est dépend de la cam, je ne sais pas koi faire pour resoudre le probleme , je pense à appliquer des filtres???? aidez moi


   
 
                  Zoheir13k
 
    je suis vraiment fasciné par ce travail que tu viens de faire.je cherche un logiciels qui peut permettre cette reconnaissance ou cette comparaison  
  mais hélas sans succés jusqu'à je tombe sur ta question dans ce forum. Je te serai vraiment reconnaissant si tu peux m'envoyer ne serait ce que un message d'encouragement et un petit tuyau pour commencer les recherches.Je te remercie d'avance wa salam
 
                                                                                                           mes salutations           abo-sebia

Reply

Marsh Posté le 05-09-2011 à 15:04:23    

J'ai fait un truc du genre avec égalisation d'histogramme afin de corriger les effets de luminosité changeant du au lecteur CCD
 
http://www.jag-stang.ch/phoneguard/doc/draft/image%20processing%20chain.png
 
 
http://www.jag-stang.ch/phoneguard [...] eguard.pdf
 
 
 


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed