IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

[Graphic] Détecter le visage dans une photo portrait


Sujet :

Langage Delphi

  1. #1
    Membre régulier Avatar de Bourak
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 231
    Points : 84
    Points
    84
    Par défaut [Graphic] Détecter le visage dans une photo portrait
    Salut les developpeur.

    Je chercher pour une methode qui detecte le contour d'une photo portrait (visage) et ne laisse que le visage et le coup. J'ai realiser une application qui enleve le blanc mais elle n'est pas efficace pour certaines photos car elle enleve (selon la luminausité d'image) le blanc des yeux et des dents.

    Y'a t'il une autre methode qui detecte le contour de visage et enleve l'arriere plan.
    Voici un exemple dans les pieces jointes dont le contour enlever en blanc et reprisanter par coulour violet.

    Merci d'avance.
    Images attachées Images attachées   

  2. #2
    Membre régulier Avatar de Bourak
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 231
    Points : 84
    Points
    84
    Par défaut
    Salut

    Veuillez me rappeler si je n'ai pas bien posé ma problème.

    Merci d'avance.

  3. #3
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    ta question est claire, mais le sujet est complexe

    quelques résultats google :

    -> face recognition

    -> delphi face recognition
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre régulier Avatar de Bourak
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 231
    Points : 84
    Points
    84
    Par défaut
    Salut les developpeurs.

    Merci Paul TOTH pour votre aide.
    Mon problème ce n'est pas la reconnaissance faciale mais plutot c'est la detection du contour pour une simple image comme celle presenter dans ma premiere poste.

    Merci d'avance.

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Aujourd'hui : Mon problème ce n'est pas la reconnaissance faciale mais plutot c'est la detection du contour pour une simple image comme celle presenter dans ma premiere poste.
    ...
    Hier : Y'a t'il une autre methode qui detecte le contour de visage et enleve l'arriere plan.
    ... si c'est juste pour changer la couleur de l'arrière-plan qui entoure le visage tu peux utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var clArrierPlan : tColor;
    begin ...
            with image1.canvas do
            begin .....
                    clArrierPlan:=Pixels[x,y];  // < couleur de l''arrière-plan
                    brush.Color:=clWhite;      // < couleur de remplacement
                    FloodFill(x,y,clArrierPlan,fsSurface);
            end;
    end;
    ... FloodFill(X, Y, Color, fsSurface ) remplit toute la zone contenant la couleur spécifiée par le paramètre Color. S'arrête quand une autre couleur est rencontrée : pour plus de détails sur FloodFill voir l'aide Delphi.
    ... ne marche qu'avec un arrière-plan de couleur uniforme, sinon ça va être plus compliqué.

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  6. #6
    Membre régulier Avatar de Bourak
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 231
    Points : 84
    Points
    84
    Par défaut
    Merci Gilbert Geyer

    Je vais voir et tester ton code .

    A bientôt.

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Re-Salut,

    Je l'ai testé : ça marche avec image1 chargé avec un fichier *.bmp mais si c'est un autre format faudra peut-être d'abord le convertir au format *.bmp quitte à le reconvertir, après modification, vers le format initial.

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  8. #8
    Membre régulier Avatar de Bourak
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 231
    Points : 84
    Points
    84
    Par défaut
    Salut.

    Merci Gilbert Geyer pour votre aide.

    Disolé pour mon retard.

    est ce qu'il est possible d'enlever tous le blanc dans un seul coup.

    Merci d'avance.

  9. #9
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    une idée , pourquoi pas convertire l'image à 4 couleur ou meme à 2??
    je connait rien dans les images
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  10. #10
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    est ce qu'il est possible d'enlever tous le blanc dans un seul coup.
    ... Oui-Mais seulement si le "blanc" en question est uniformément le même sur toute la surface visée, sinon on est obligé de cliquer autant de fois qu'il y a de blancs de teinte voisine (à l'oeil le Blanc qui est égal à RGB(255,255,255) ne se distingue pas du blanc RGB(255,250,248), par contre FloodFill(X, Y, Color, fsSurface ) s'arrête quand une autre couleur est rencontrée donc lorsqu'il rencontre ce deuxième blanc.

    Pour fignoler le code il faudrait par exemple en partant du bord de l'image faire un While MaCouleur(x,y) EstCompriseEntreTellesLimites do MaCouleur(x,y):=clWhite et d'utiliser ensuite FloodFill(X, Y, Color, fsSurface ) pour enlever tout le blanc.

    Dans un cas exceptionnel où l'ensemble de tes zones de blancs plus ou moins blancs serait entièrement bordé par une couleur monochrome on pourrait utiliser FloodFill(X, Y, Color, fsBorder ) qui remplit toute la zone ne contenant pas la couleur indiquée par le paramètre Color (c'est à dire la zone des blancs plus ou moins blancs) et qui s'arrête quand la couleur Color (celle de la bordure) est rencontrée.

    A+

    EDIT : En fouillant le site d'Efg2 je viens de trouver un code qui utilise une procédure Fill meilleure que FloodFill et qui permet de fixer une marge de tolérance sur la couleur de l'arrière-plan à remplir. Tu peux charger le Zip de ce code ici : http://www.efg2.com/Lab/Library/Delp...htm#Flickering
    ... voir à la rubrique "Floodfill" :
    - à la 5ième ligne du texte tu trouveras "Filling" algorithm
    - et à la 6ième le Zip : http://delphi.icm.edu.pl/ftp/d30free/fillunit.zip

    ... il permet également en 2 clicks de supprimer sur une photo l'effet "yeux rouges" en remplaçant les nuances de rouge par du clAqua par exemple.

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  11. #11
    Membre régulier Avatar de Bourak
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 231
    Points : 84
    Points
    84
    Par défaut
    Merci pour votre aide

    Ceci est la fonction que je cherche:

    http://delphi.icm.edu.pl/ftp/d30free/fillunit.zip

    Merci Gilbert Geyer et tous l'equipe de Developpez.

    Merci et à bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C# 2.0] Détecter les doublons dans une List<string>
    Par Rodie dans le forum Windows Forms
    Réponses: 36
    Dernier message: 30/03/2013, 15h21
  2. Detection de visages dans une image
    Par bert_ dans le forum Traitement d'images
    Réponses: 11
    Dernier message: 19/03/2007, 21h22
  3. détecter un caractère dans une chaine
    Par boss_gama dans le forum ASP
    Réponses: 4
    Dernier message: 31/08/2006, 08h46
  4. [Expression Graphic Designer] Comment incorporer dans une form XAML ?
    Par pc152 dans le forum Windows Presentation Foundation
    Réponses: 14
    Dernier message: 12/08/2006, 09h25
  5. estimation des distances dans une photo a 2 points de fuite
    Par gronaze dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 19/05/2006, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo