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

Traitement d'images Discussion :

Détection de tubes


Sujet :

Traitement d'images

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Points : 26
    Points
    26
    Par défaut Détection de tubes
    Bonjour,

    j'aimerais connaitre votre avis quant à la détection du diamètre et du haut de ces tubes.
    Quelles techniques devrais je utiliser pour arriver à mes fins???
    Je pense que l'idée est d'utiliser une technique de recherche de contour, mais je suis vraiment novice dans ce domaine! Et à part Sobel je ne connais pas grand chose...

    Merci de votre aide

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Bonjour, je te propose les pistes suivantes :

    1. Ne pas utiliser des images au format JPEG car la compression crée des artefacts (des blocs carrés). Il faut préférer un format non compressé

    2. Augmenter le contraste, par exemple en égalisant l'histogramme

    3. chercher le haut et la largeur du tube en utilisant les histogrammes de projections
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Bonjour, je te propose les pistes suivantes :

    1. Ne pas utiliser des images au format JPEG car la compression crée des artefacts (des blocs carrés). Il faut préférer un format non compressé
    Oui, j'ai les images au format BMP. C'était simplement pour les mettre sur le forum que je les avais converties.
    2. Augmenter le contraste, par exemple en égalisant l'histogramme
    Ok. C'est ce que je pensais faire.
    3. chercher le haut et la largeur du tube en utilisant les histogrammes de projections
    Est ce que je peux en savoir un ptit peu plus...? Je ne connais ps du tout ces histogrammes.

    Merci

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par picsou42 Voir le message
    Est ce que je peux en savoir un ptit peu plus...? Je ne connais ps du tout ces histogrammes.
    C'est un terme très compliqué pour dire simplement que tu fais la somme des valeurs pour chaque ligne (projection horizontale) ou pour chaque colonne (projection verticale).

    Si tu fais le histogramme de projection horizontale sur ton image, les premières valeurs (= les lignes du haut) seront faibles (image sombre) et il va y a voir une "marche" au moment ou le tube va être visible.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    C'est un terme très compliqué pour dire simplement que tu fais la somme des valeurs pour chaque ligne (projection horizontale) ou pour chaque colonne (projection verticale).

    Si tu fais le histogramme de projection horizontale sur ton image, les premières valeurs (= les lignes du haut) seront faibles (image sombre) et il va y a voir une "marche" au moment ou le tube va être visible.
    Je comprend pas trop en fait en quoi cela va me donner le haut du tube...
    Car même si j'augmente le contraste en égalisant l'histogramme, du fait que le haut du tube est bombé, lorsque je vais arriver à la ligne censée représenter le haut du tube, la somme de pixels noirs plus un ou deux pixels "moins noir" sera insignifiante ...

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par picsou42 Voir le message
    Je comprend pas trop en fait en quoi cela va me donner le haut du tube...
    Car même si j'augmente le contraste en égalisant l'histogramme, du fait que le haut du tube est bombé, lorsque je vais arriver à la ligne censée représenter le haut du tube, la somme de pixels noirs plus un ou deux pixels "moins noir" sera insignifiante ...
    Exact. En fait sur l'histogramme tu n'auras pas une "marche" mais une "pente". L'histogramme va te donner une courbe qu'il va falloir analyser avec des outils statistiques/mathématiques.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonsoir,

    regarde ces deux liens pour les histogrammes de projections : 1 et 2 ;

    Sinon je viens d'ajouter une discussion avec du code basique dans la rubrique contribuez (je ferai une version améliorée de retour de congés ).
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Points : 26
    Points
    26
    Par défaut
    Autre petite question concernant la détection de présence d'un tube devant la caméra.
    Ce que je veux faire c'est comparer une image de référence (image du fond noir sans tube) à l'image à tester. Et donc j'effectue la différence pixel à pixel entre ces deux images et je calcule l'erreur moyenne entre les deux images. Si l'erreur est importante c'est qu'il y a quelque chose devant ma caméra.

    Ce que je voudrais savoir c'est si mon raisonnement est bon dans le sens où pour créer mon image de référence, j'enlève la valeur moyenne à chaque pixel.

    puis pour l'image à tester, je calcule la valeur moyenne de l'image, je l'enlève ensuite à chaque pixel et j'effectue le calcul de l'erreur entre ces deux images normalisées... Mais j'ai finalement un doute sur mon raisonnement avec cette histoire de couper la valeur moyenne sur l'image à tester. Car si mon image est beaucoup plus claire et homogène je me retrouve avec des pixels de faibles valeurs... et donc l'écart entre l'image référence et l'image à tester devient moins grand non?

  9. #9
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par picsou42 Voir le message
    Autre petite question concernant la détection de présence d'un tube devant la caméra.
    Ce que je veux faire c'est comparer une image de référence (image du fond noir sans tube) à l'image à tester. Et donc j'effectue la différence pixel à pixel entre ces deux images et je calcule l'erreur moyenne entre les deux images. Si l'erreur est importante c'est qu'il y a quelque chose devant ma caméra.

    Ce que je voudrais savoir c'est si mon raisonnement est bon dans le sens où pour créer mon image de référence, j'enlève la valeur moyenne à chaque pixel.

    puis pour l'image à tester, je calcule la valeur moyenne de l'image, je l'enlève ensuite à chaque pixel et j'effectue le calcul de l'erreur entre ces deux images normalisées... Mais j'ai finalement un doute sur mon raisonnement avec cette histoire de couper la valeur moyenne sur l'image à tester. Car si mon image est beaucoup plus claire et homogène je me retrouve avec des pixels de faibles valeurs... et donc l'écart entre l'image référence et l'image à tester devient moins grand non?
    Il faut aussi utiliser la variance de l'image lors de sa normalisation. On vient d'en parler dans la discussion d'à coté : Classification de terrain
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Il faut aussi utiliser la variance de l'image lors de sa normalisation. On vient d'en parler dans la discussion d'à coté : Classification de terrain
    Ok.
    Et donc j'obtiens une dynamique par image. Est-il nécessaire de ramener les images normalisées sur la même echelle; Par exemple, après normalisation de tout ramener entre 0 et 255.
    A mon sens oui, mais je suis pas convaincu à 100%.

  11. #11
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par picsou42 Voir le message
    Ok.
    Et donc j'obtiens une dynamique par image. Est-il nécessaire de ramener les images normalisées sur la même echelle; Par exemple, après normalisation de tout ramener entre 0 et 255.
    A mon sens oui, mais je suis pas convaincu à 100%.
    Si c'est pour, au final, calculer les différences au carré, alors ce n'est pas la peine.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Si c'est pour, au final, calculer les différences au carré, alors ce n'est pas la peine.
    OK.
    Finalement j'ai trouvé encore plus simple pour caractériser la présence d'un tube.
    Je me sers de la variance de l'image. Si j'ai une région uniforme (donc pas de tube), j'ai une faible variance. Alors que si un tube est présent la variance augmente.

  13. #13
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par picsou42 Voir le message
    OK.
    Finalement j'ai trouvé encore plus simple pour caractériser la présence d'un tube.
    Je me sers de la variance de l'image. Si j'ai une région uniforme (donc pas de tube), j'ai une faible variance. Alors que si un tube est présent la variance augmente.
    Oui, ca c'est certain.

    Mais comment savoir "où" se trouve le haut du tube ? Tu parcours ton image verticalement jusqu'à détecter un changement ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Oui, ca c'est certain.

    Mais comment savoir "où" se trouve le haut du tube ? Tu parcours ton image verticalement jusqu'à détecter un changement ?
    Ah mais ça c'est un autre problème!!
    Je ne l'ai pas encore résolu en fait. C'est vrai qu'à la base c'était le sujet du topic, mais j'ai pas trop avancé. L'idée des histogrammes projetés n'a rien donné en fait. Le problème est que si j'utilise les projections sur l'image brute, je n'ai que de faibles transitions (ce qui est normal) mais si j'utilise les projections sur l'image "réhaussée" (égalisation d'histogramme), j'obtiens rien car mon image devient trop bruitée...

    Donc je suis un peu au point mort pour le moment...
    Toute autre idée est la bienvenue...

    Autre petite question... quelle serait la meilleure technique, selon vous, pour mieux voir le tube??? Je parle au niveau de l'éclairage et/ ou du fond.
    Là le fond est noir, et c'est vrai qu'on ne distingue pas grand chose... Mais si j'utilise un fond plus clair, je me retrouve avec l'ombre du tube et donc une image beaucoup trop riche en terme d'information (ombre, reflets exterieurs, phénomène de diffraction, etc...).

  15. #15
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Tu peux utiliser des variantes de l'égalisation d'histogramme pour éviter de créer trop de bruit. Recherche sur le web : Adaptive (ou Windowed, ou Local) Histogram Equalization.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    désolé de ne pas avoir donné de réponse plus tôt mais j'étais un petit peu occupé avec autre chose...

    Je n'ai pas regardé les techniques que vous m'indiquiez car pour moi, le problème vient du fait que l'image est trop sombre.
    J'ai donc essayé de mettre un autre fond. Apres avoir essayé beaucoup de fond coloré, sans grand résultat (phénomène d'ombre gênant), j'ai essayé de placer une mire avec des lignes verticales.
    Peut être qu'il s'agit que d'une impression mais les contours ont l'air de mieux ressortir... En tout cas mon idée avec cette mire était d'étudier la variation du motif bande blanche bande noire. Je voulais étudier le profil d'une ligne, donc obtenir un signal 1D et voir à quel moment je perds l'alternance noir-blanc.



    Et donc ma premiere question est: ce raisonnement vous semble t il pertinent??
    Et la seconde: Quelle technique pourrais-je employer pour identifier la zone de mon signal 1D qui m'interesse (c'est à dire: la zone présente entre deux alternances blanc noir) ? ma première idée était de simplement seuiller ce signal et repérer l'endroit ou on avait une distance supérieure à une alternance blanche noir... je ne l'ai pas encore testée je sais pas ce que ca peut donner...


    Si par hasard vous voyez une meilleure technique pour détecter le diamètre, je suis complètement preneur...
    Merci

  17. #17
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Tu pourrais comparer l'histogramme "avec tube" avec un histogramme "de référence" (lorsqu'il n'y a aucun tube de présent).

    Une première analyse pour aligner les 2 histogrammes, et une deuxième pour trouver les limites gauche/droite de correspondance.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Tu pourrais comparer l'histogramme "avec tube" avec un histogramme "de référence" (lorsqu'il n'y a aucun tube de présent).

    Une première analyse pour aligner les 2 histogrammes, et une deuxième pour trouver les limites gauche/droite de correspondance.
    Oui tout à fait.
    Mais quelle genre de comparaison pourrais-je faire pour aligner les deux histogrammes?

  19. #19
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par picsou42 Voir le message
    Oui tout à fait.
    Mais quelle genre de comparaison pourrais-je faire pour aligner les deux histogrammes?
    D'après tes diagrammes, tu as environ 4 pics par case. Tu peux donc te limiter à calculer le coefficient de corrélation (ou l'erreur au carré) pour des petites valeurs de décalage (entre -1/4 et +1/4 de case)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    D'après tes diagrammes, tu as environ 4 pics par case. Tu peux donc te limiter à calculer le coefficient de corrélation (ou l'erreur au carré) pour des petites valeurs de décalage (entre -1/4 et +1/4 de case)
    Donc si j'ai bien compris: je me crée un signal "référence" (profil sans tube).
    Je calcule la corrélation entre les deux signaux (ou plutôt avec l'erreur quadratique pour commencer...) à différentes positions (par exemple à -1/4 0 1/4). Je conserve la position possédant la plus faible EQM.

    Mais après??? comment je fais pour trouver les bords gauches et droits de mes objets?

Discussions similaires

  1. Détection de fuite dans des tubes
    Par nadour dans le forum Traitement d'images
    Réponses: 17
    Dernier message: 23/04/2012, 14h34
  2. Détection MySql
    Par gjullien dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/08/2003, 18h15
  3. Tube a partir de polysegments
    Par seb m. dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 18/12/2002, 17h08
  4. Détections avec WebBrowser
    Par Wazo_Sportive dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/08/2002, 19h32
  5. Détection de 2 touches appuyées
    Par cyrose dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 16h25

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