Rechercher un element dans une image

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Rechercher un element dans une image

Message par lepiaf31 »

Bonjour tout le monde !

Je voudrais trouver la position d'un element précis d'une image mais je ne sais pas du tout comment m'y prendre, je viens donc demander votre aide pour trouver une piste. Par exemple je voudrais trouver ce rond :
Image

dans cette image:
Image

Si quelqu'un sait comment s'y prendre merci d'eclairer ma lanterne.

bye
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

.....
Dernière modification par Backup le mar. 19/août/2014 12:48, modifié 1 fois.
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Message par lepiaf31 »

Je dispose de l'image de référence à rechercher mais je ne sais pas du tout comment m'y prendre.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

......
Dernière modification par Backup le mar. 19/août/2014 12:49, modifié 1 fois.
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Message par lepiaf31 »

Bon alors à peine je commence et déjà j'ai un probleme ^^. J'ai décidé de créer un tableau de tous les pixels de l'image contenant les coordonnées du pixel et la couleur qui lui est attribuée(avec la fonction Point() ). Je fais donc un test avec un carré orange de 50*50 px. Cela marche tres bien sauf pour les points d'abscisse x=50 ou d'ordonnée y=50 c'est-à-dire le bord droit et le bas de l'image (la fonction point() renvoi -1). Quelqu'un à une explication ?

Je laisse le code utilisé:

Code : Tout sélectionner

Structure img
  x.l
  y.l
  color.l
EndStructure

Procedure TransformImage(Image)
  If StartDrawing(ImageOutput(Image))
    Width = ImageWidth(Image)
    Height = ImageHeight(Image)
    Size = Width * Height
    Dim Array.img(Size)
    
    i=0
    For y=1 To Height
      For x=1 To Width
        Color = Point(x, y)
        Array(i)\x = x
        Array(i)\y = y
        Array(i)\color = Color
        i+1
      Next
    Next
        
    StopDrawing()
    
    For i=0 To Size-1
      Debug Str(Array(i)\x)+","+Str(Array(i)\y)+":"+Str(Array(i)\color)
    Next
  EndIf
EndProcedure

If LoadImage(1, "test.bmp")
  TransformImage(1)
EndIf
Dernière modification par lepiaf31 le jeu. 31/juil./2008 19:36, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

...
Dernière modification par Backup le mar. 19/août/2014 12:49, modifié 1 fois.
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Message par lepiaf31 »

ha ben oui c'est tou con ^^ je ne savais pas qu'une image commencais aux coordonnées 0,0.

Maintenant j'aimerais savoir comment transmettre mon tableau structuré au reste du programme (hors de la procédure quoi)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

....
Répondre