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

Calcul scientifique Python Discussion :

Dataset d'images incomplet, suppression images


Sujet :

Calcul scientifique Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Dataset d'images incomplet, suppression images
    Bonjour,

    Je ne connais en rien la programmation et encore moins python, mais un collègue m'a dit que ma demande serait facilement faisable.

    J'ai un Dataset de plus de 100 000 images de microscopie. Les noms du dataset sont écrits selon cette forme :

    A01_s01_w1
    A01_s01_w2
    A01_s01_w3

    A01_s02_w1
    A01_s02_w2
    A01_s02_w3

    (...)

    A01_s25_w1
    A01_s25_w2
    A01_s25_w3

    (...)

    A02_s01_w1
    A02_s01_w2
    A02_s01_w3

    (...)

    A02_s25_w1
    A02_s25_w2
    A02_s25_w3

    Ainsi la syntaxe A** correspond au puits d'acquisition (A01 à A12; B01 à B12; C01 à C12 etc). La syntaxe S** correspond au site d'acquisition. La syntaxe W1, W2, ou W3 correspond aux couleurs d'acquisition.

    Pour chaque puits, le microscope acquiert au total 25 sites différents (S01 a S25) et chacun d'eux en 3 couleurs.
    Cependant dans ce dataset j'ai des images manquantes. Toutes les images qui me manquent sont celles dans la couleur w1.
    Donc je me retrouve parfois avec des images W2 et W3 orpheline de W1.

    Je voudrais pouvoir supprimer toutes les images W2 et W3 qui n'ont pas d'images W1. Ou plus largement tous les sites d'acquisition qui n'ont pas les trois couleurs W1, W2, W3.

    Faire cela à la main est quasi impossible sans parler d'erreur possible.

    Je vous remercie de votre aide

    Jonathan

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 273
    Points : 36 757
    Points
    36 757
    Par défaut
    Salut,

    Il faut commencer par une double boucle qui fabrique les chaines de caractères de la forme AX_sY ou X et Y sont les indices de chaque boucle.
    Soit P cette chaine de caractère, une 3ème boucle interne qui teste l'existence des différents P_w1, 2, 3 pour, s'il en manque un, détruire la série.

    La plus grosse difficulté sera la mise au point de votre code... car il ne va pas falloir détruire des fichiers que vous vouliez garder.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci pour l'information !

  4. #4
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    sur un principe à peine différent; on considère la liste des noms dans un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >cat dataset_names
    A01_s01_w1
    A01_s01_w2
    A01_s01_w3
    A01_s02_w2
    A01_s02_w3
    A01_s25_w1
    A01_s25_w2
    A01_s25_w3
    A02_s01_w1
    A02_s01_w3
    A02_s25_w1
    A02_s25_w2
    A02_s25_w3
    on découpe chaque nom lu en un préfixe et un suffixe, d'un côté A01_s02 et de l'autre w1, w2 etc.
    le but étant de créer un dictionnaire (une table de hashage) ayant pour clé le préfixe et comme valeur la liste non-ordonnée (set) des suffixes que l'on trouve
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    hash = dict()
    with open('dataset_names', 'r') as fichier:
       for nom in fichier:
          prefix, suffix = nom[:7], nom[8:-1]
          hash.setdefault(prefix, set()).add(suffix)
    à la fin il suffit de parcourir le dictionnaire et de filtrer toutes les clés qui ne correspondent pas exactement aux 3 valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> print(', '.join([nom for nom in hash if hash[nom] != {'w1', 'w2', 'w3'}]))
    A01_s02, A02_s01

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Parfait merci !
    J'ai donné ces infos a un amis qui code un peu et il a réussi à me faire un petit programme pour trier mon dataset. Je vais pouvoir avancer dans mon travail

    Je vous remercie de votre aide !!

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

Discussions similaires

  1. Dataset d'images médicales
    Par Décembre dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 19/03/2012, 22h10
  2. [image] Problème de suppression des max locaux avec Canny
    Par Rafoo dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 06/11/2005, 00h22
  3. [VB.NET] Sélection d'image pour suppression
    Par botanique dans le forum Windows Forms
    Réponses: 12
    Dernier message: 01/11/2005, 17h09
  4. [C#] Récup champ IMAGE SQLServer avec un DataSet Typé
    Par SoaB dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/07/2005, 14h53
  5. Suppression de cadre autour d'une image qui sert de lien
    Par vasilov dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 03/04/2005, 13h02

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