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 :

Calcul de surface à partir d'une image


Sujet :

Langage Delphi

  1. #21
    Membre confirmé
    Homme Profil pro
    Santé
    Inscrit en
    Septembre 2010
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Santé
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2010
    Messages : 290
    Points : 534
    Points
    534
    Par défaut
    Je vous conseille de travailler avec des pièces 100% blanches et un fond noir (ou l'inverse, peu importe), de calculer le document en "niveaux de gris" puis de placer le niveau de dichotomie blanc/noir à (128,128,128).
    C'est une manière de réduire les approximations de bordure.

  2. #22
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Bonjour,

    la méthode des couleurs de pixels fonctionne quelque soit la forme de la pièce de chaussure (multi trouée ou non).

    Si j'ai bien compris, pour connaitre le "déchet", il suffit de scanner un carton identique au carton initial, mais de couleur jaune par exemple, avec les pièces de chaussures par dessus et évidement le petit carré rouge dans un coin. Les pixels jaunes donnent la surface du déchet.

    Tout dépend si le carton initial est toujours de même taille, car il en faut un coloré en jaune.

    A+
    Charly

  3. #23
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    la méthode des couleurs de pixels fonctionne quelque soit la forme de la pièce de chaussure (multi trouée ou non).
    je le pensais bien
    Si j'ai bien compris, pour connaitre le "déchet", il suffit de scanner un carton identique au carton initial, mais de couleur jaune par exemple, avec les pièces de chaussures par dessus et évidement le petit carré rouge dans un coin.
    c'est une solution, mais je voyais plutôt une solution à base de contour dessiné plus ou moins à main levée d'où mon idée d'utiliser le Tpath pour cette partie
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #24
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 856
    Points : 11 290
    Points
    11 290
    Billets dans le blog
    6
    Par défaut
    Pour estimer les déchets, ce sont les pixels '.' entre des pixels 'X' au ScanLine : ....XXX..XXXXXX...XXXX....... ; pas besoin d'une quatrième couleur.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #25
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    @ Tourlourou
    Je n'ai pas compris :
    Il faut bien une quatrième couleur ? car le carton ne remplit pas tout le fond du scan ou de la photo.

  6. #26
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonsoir,

    promis, je vais vous faire un scan pendant mes vacances qui viennent de débuter, comme je suis coincé, ce n'est pas un soucis !

    à mon avis 4 couleurs :
    Noir, le fond du scan
    Rouge (ou autre) le "carré" échelle
    Ce qui laisse le "dessin" des pièces scannées (plutôt crème le carton)
    et une autre couleur pour la ligne à "main levée" pour contourner avec déchets
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #27
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 856
    Points : 11 290
    Points
    11 290
    Billets dans le blog
    6
    Par défaut
    Si le déchet correspond aux trous à l'intérieur de la pièce, pas besoin de quatrième couleur ; s'il correspond aux concavités de la pièce sur ses bords externes, il en faut bien une.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  8. #28
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    non, le déchet ne correspond pas aux trous (minimime) mais plutôt à une surface qui sera inutilisable par la suite !

    c'est un peu comme de la pâtisserie, pour faire des biscuits de noël, on étale sa pâte, on prend des emporte-pièces de diverses formes et en avant pour la découpe. Une fois qu'il est impossible de placer son emporte-pièce il reste encore de la pâte . Avantage en reprend la pâte restante reforme une boule, puis on recommence les opérations étaler/ découper. Avec le cuir, c'est évidement impossible notre reste de pâte devient un déchet.

    L'usage donc dans cette industrie est de calculer les surfaces pour une paire échantillon (pointure 37 pour les femmes) en prenant en compte les déchets possibles de la découpe. C'est ce que fait donc mon collègue en disposant les diverses pièces sur un carton, utilisant une règle souple ou un pistolet pour tracer des courbes (ce que je remplacerai avec mon programme par un tracé à main levé ou même des courbes de Bézier).
    Il suit alors ces courbes pour découper (avec une sorte de cutter, à la main) le carton du dessous et c'est ce carton qu'il "mesure" !

    Chaque fois que je le vois faire, combinant le pièces pour obtenir le moins de déchet possible , sachant que par la suite le coupeur ne placera pas forcément les pièces de la même manière je m'exclame que c'est dingue ! qu'il vaudrait mieux avoir les surfaces réelles et multiplier par un taux de déchet fixé par exemple à la matière i.e cuir de chévre 5%, cuir de vache 2.5% etc. (les taux ne sont pas réels, j'ai pas les chiffres sous la main, surtout que les peaux ne sont pas carrées ! elles sont vendues avec une partie des pattes)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #29
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 322
    Points : 310
    Points
    310
    Par défaut
    Avec un scan tu digitalises en niveau de gris

    Il faut trouver inverser les couleurs blanc devient noir et vice et versa.

    Tu balaie l'image pour trouver le point le plus noir. C'est zéro.
    Tu balaie l'image pour trouver le plus blanc, C'est le poids maximal pour un pixel carré
    (Idéalement c'est un calcul avec histogramme. la barre la plus grande vers le blanc c'est 100%, la plus grande vers le noir c'est zéro. Tout ce qui est au-delà et en deça est réajusté au min et au max précédemment calculé):

    Tu recalibres l'image pour mettre le blanc a vraiment à 255 et le noir à 0 avec une règle de trois: Nouvelle_Valeur_Pixel=(Valeur_Pixel-Pixel_Min)/(Pixel_Max-Pixel_Min)*255.

    Tu sommes l'ensemble des pixel et ça te donne le poids à un facteur près... Facteur que tu connais.

  10. #30
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Bonjour,

    comme SergioMaster veut dessiner la forme de la pièce de chaussure à la souris et reconnaitre le contour, j'ai pensé au programme Trajectoires de Gilbert Geyer.
    Ce programme permet de reconnaitre et de matérialiser un contour issu d'un Bmp affiché à l'écran.

    Je l'ai légèrement modifié (j'espère qu'il ne m'en voudra pas ...) pour dessiner le contour à la souris, afficher les coordonnées du contour et calculer sa surface et son périmètre.

    Voici le programme modifié :

    Trajectoires.zip

    Seul Bémol, le trait du contour ne doit mesurer qu'un pixel d'épaisseur, et cela ne fonctionne pas toujours (en cas de pâté ou pour certains croisements.

    Mais bon, c'est un début qui pourrait compléter mon premier essai dans ce post.

    A+
    Charly

  11. #31
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    en un glyphe , de mon côté, vacances terminées il m'a fallu reprendre mes activités "ordinaires", c'est fou ce qu'un patron peut avoir comme idées en une semaine ! idées urgentes bien sûr.

    Je n'ai donc progressé que sur la liaison entre les fichiers de la "CAO" utilisés (en fait il y en a de 3 types par modèles bmp, pat, cut voir zip)
    - Le fichier bmp est inexploitable (je l'ai joint que pour montrer)

    - le fichier cut, n'est pas un fichier standard, on peut quand même l'ouvrir avec notepad++, mais incompréhensible, je n'ai pas encore croisé mes collègues du bureau d'étude mais je crois que ces fichiers cut servent à la machine à découper.

    -Reste le fichier pat et là, ça me parle, surtout depuis que je suis aller refaire un tour dans un bouquin sur les API graphiques windows !
    ce n'est qu'un fichier XML il y a déjà des informations sur le format
    <Pattern xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.crispindynamics.com/schema/Pattern.xsd" programVersion="2.0.18" formatVersion="04.00.06" companyKey="n/a" dataVersion="1" fileSetId="1">
    ensuite ces groupes de points
    voici un extrait si vous ne voulez pas regarder dans le zip
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
         <BaseLine key="4" level="3">
          <LineStyle colorRef="3"/>
          <BasePoint x="192.104813" y="136.218964" grade="2"/>
          <BasePoint x="193.295338" y="129.532454"/>
          <BasePoint x="195.258850" y="122.295194"/>
          <BasePoint x="198.237332" y="118.191927"/>
          <BasePoint x="200.871244" y="114.906540"/>
        </BaseLine>
    m'ont tout de suite fait penser (après ma relecture) à PolyBezier
    Heureusement le mois prochain offre de nombreux ponts qui me permettront de tester (peut-être) ma théorie !

    en attendant, à ma question principale, à savoir la faisabilité vous y avez plus que répondu encore merci.
    Fichiers attachés Fichiers attachés
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  12. #32
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Bonjour SergioMaster,

    j'ai mis les coordonnées du fichier pat dans Excel :

    Points.zip

    Effectivement, les clefs Baselines contiennent les contours : Key 2 et 11 pour la semelle.

    On peut donc reconstruire les pièces avec la fonction Polybezier.

    Par contre je me demande en quelle unité sont exprimés les coordonnées : longueur de la semelle 241,58 pour du 37 (Modelsize ?)

    et d'autre part pourquoi une précision de 6 chiffres après la virgule !

    Les surfaces et périmètres sont données dans le fichier (à la fin)

    A+
    Charly

  13. #33
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    bravo pour le boulot !

    On peut donc reconstruire les pièces avec la fonction Polybezier.
    c'est bien ce que je pensais, ton fichier Excel le prouve

    Par contre je me demande en quelle unité sont exprimés les coordonnées : longueur de la semelle 241,58 pour du 37 (Modelsize ?)
    question à 10 cents, sachant que un pied de taille 37 fait de fait 23,6 cm, je dirais (au débotté ) que les unités sont en mm
    et d'autre part pourquoi une précision de 6 chiffres après la virgule !
    mystère et boule de gomme, le fabricant de cet engin ne me fournira certainement pas d'explication
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  14. #34
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Bonjour,

    le stagiaire (non rémunéré ) continue de s'amuser !
    Voici la lecture du fichier XML (Pm104.pat) et l'affichage à l'écran du dessin des semelles.

    Chaussures.zip

    Pour le moment j'ai dessiné des polylignes, car pour polybezier, il me faudrait les points de contrôle. Je vais essayer pour voir de faire passer des cubiques par 3 points successifs.

    A+
    Charly

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/11/2009, 12h30
  2. Calcul d'angle à partir d'une image
    Par jesusnogo dans le forum Traitement d'images
    Réponses: 7
    Dernier message: 18/05/2009, 13h40
  3. Calculer la taille finale d'une image ISO à partir du dossier source
    Par raoulchatigre dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 05/09/2007, 21h20
  4. appel de fonction à partir d'une image activer/desactiver
    Par philippe123 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/08/2005, 16h26
  5. Réponses: 3
    Dernier message: 27/01/2005, 10h53

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