Comparaison d'images???

Bendes - 14 juin 2001 à 00:23
cs_mhd_youssef Messages postés 9 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 11 juin 2004 - 21 avril 2004 à 09:52
J'voudrais pouvoir comparer deux images par n'importe quel moyen...

J'ai essayé "If Picture1.Picture = Picture2.Picture..." et pleins d'autres trucs ET CA MARCHE PAS!!!!

Merci d'avance

6 réponses

je n'ai l'ai jamais fait , mais je pense qu'il fait decomposer l'image pixels par pixels.
moi, j'ai repris un bout de prog qui ressemblait a:
Private Declare Function SetPixel Lib "GDI32" (ByVal hDC As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal crColor As Long) As Long
Private Declare Function GetPixel Lib "GDI32" (ByVal hDC As Integer, ByVal X As Integer, ByVal Y As Integer) As Long
Private Declare Function StretchBlt% Lib "GDI32" (ByVal hDC%, ByVal X%, ByVal Y%, ByVal nWidth%, ByVal nHeight%, ByVal hSrcDC%, ByVal XSrc%, ByVal YSrc%, ByVal nSrcWidth%, ByVal nSrcHeight%, ByVal dwRop&)

et dans la foulee voila une fonction qui recopie une image pour en donner son negatif, adapte pour pas recopier mais comparer, ca devrait aller

Sub Negative(Pic1 As PictureBox, Pic2 As PictureBox)
Dim c1x As Integer, c1y As Integer
Dim p1x As Integer, p1y As Integer
c1x = Pic1.ScaleWidth - 1
c1y = Pic1.ScaleHeight - 1
pic1hDC% = Pic1.hDC
pic2hDC% = Pic2.hDC
For p1y = 0 To c1y
For p1x = 0 To c1x
c0& = blanc - GetPixel(pic1hDC%, p1x, p1y)
If c0& <> -1 Then xret& = SetPixel(pic2hDC%, p1x, p1y, c0&)
Next
T% = DoEvents()
Next
End Sub
0
Merci bcp, j'v regarder ça à mon aise...
0
Merci bcp, j'v regarder ça à mon aise...
0
finalement j'ai eu besoin de le faire, voila la solution:

Sub TransformerCouleurs(pic1 As PictureBox, pic2 As PictureBox) ' tes 2 images a comparer
Dim c1x As Integer, c1y As Integer
Dim p1x As Integer, p1y As Integer
Dim test As Boolean
c1x = pic1.ScaleWidth - 1 'largeur image
c1y = pic1.ScaleHeight - 1 'hauteur image
pic1hDC% = pic1.hDC 'je crois que c'est pour ouvrir
pic2hDC% = pic2.hDC 'les images
test = True
For p1x = 0 To c1x
For p1y = 0 To c1y'boucle pour tester chaq pixel
c1& = GetPixel(pic1hDC%, p1x, p1y)
c2& = GetPixel(pic2hDC%, p1x, p1y)
If c1& <> c2& Then test = False
Next
T% = DoEvents()'permet de traiter une autre interruption
Next
TxtInformations(0).Text = test 'pour ecrire dans une boite de texte qu'il faut definir au prealable
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wilyd Messages postés 2 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 29 février 2004
6 mars 2003 à 22:59
wilyd
j ai tiré 2 pictures d une webcam , elle se rafraichissent toutes 2 seconde , j ai utilisé le bout de code comme dessous , mais j ai un message de depassement de capacité avec les lignes

je veux comparer les 2 images mais ....

> pic1hDC% = pic1.hDC 'je crois que c'est pour ouvrir
> pic2hDC% = pic2.hDC 'les images
??? que puis je faire !!!
Sauvez moi please,
0
cs_mhd_youssef Messages postés 9 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 11 juin 2004
21 avril 2004 à 09:52
youssef EL GHAZIOUI

Je voudrais pouvoir comparer deux images par n'importe quel moyen en delphi si tu pourras m'aider, les 2 images sont stockées ds un fichiers chaque seconde.
merci d'avance mon email c: mhd_youssef@yahoo.fr
0
Rejoignez-nous