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

Images Discussion :

Sélection d'une zone et imposer la valeur du pixel


Sujet :

Images

  1. #1
    Membre régulier Avatar de biquet
    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 199
    Points : 105
    Points
    105
    Par défaut Sélection d'une zone et imposer la valeur du pixel
    Bonjour,

    Voila, je pars d'une image en couleur et je la transforme en niveau de gris.
    De cette image en niveau de gris, j'applique des filtres afin de déterminer certaines valeurs et ceci me donne une photo en noir et blanc.

    Ces valeurs se trouve affectées par la qualité de la photos initiale. en effet, lors de l'application de filtre et le passage en noir et blanc, des taches noir apparaissent dans le blanc et des taches blanches apparaissent dans le noir (ceci est simplement du à la mauvaise qualité de la photo initiale que je doit traiter).

    Ma question est la suivante : est -il possible de selectionner une zone avec la souris et de dire que tout les pixels de la zone sélectionner sont blanc ou alors sont noir afin d'éliminer ces taches parasites qui me géne dans le calcul de mes valeurs ?

    Si c'est possible peut on me mettre sur la voie car je séche complétement.

    j'espère avoir été clair
    Tous en autodidacte :
    - LV 8.5 et LV 8.6 (en phase d'apprentissage)
    - Matlab 6.1
    - VB6

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Sans nous montrer (si c'est possible) un aperçu de ton image, il est difficile de te donner une bonne réponse. As-tu essayé des fonctions de dilatation et d'érosion sur ton image pour éliminer les tâches ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 57
    Points : 63
    Points
    63
    Par défaut
    Si j'ai bien tout suivi et que tu fais (comme je le penses) à un moment donné une binarisation, alors tu peux toujours essayer la fonction imfill qui rempli les trous dans des ojets


  4. #4
    Membre régulier Avatar de biquet
    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 199
    Points : 105
    Points
    105
    Par défaut
    voici une image en noir et blanc que j'obtiens aprés traitement

    Pièce jointe 13322

    ce que je veux c éliminer toutes les taches noires qui sont a l'extèrieure de la bande noire centrale.Je précise que les taches noires ne sont pas localisée au même endroit cela dépend de la photo d'origine.

    Une sélection manuel de la zone et dire cette zone devient blanche serait bien

    merci
    Tous en autodidacte :
    - LV 8.5 et LV 8.6 (en phase d'apprentissage)
    - Matlab 6.1
    - VB6

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Pourquoi ne pas utiliser REGIONPROPS pour ne conserver que la partie noire qui a la plus grande surface (par exemple) ? Cela éliminera toutes les autres tâches noires.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  6. #6
    Membre régulier Avatar de biquet
    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 199
    Points : 105
    Points
    105
    Par défaut
    je vais regarder, je ne connaissais pas cette fonction
    Tous en autodidacte :
    - LV 8.5 et LV 8.6 (en phase d'apprentissage)
    - Matlab 6.1
    - VB6

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Une solution avec BWLABEL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    figure
    colormap gray
     
    subplot(2,1,1)
    imagesc(X);
     
    L=bwlabel(~X);
    uniquL=unique(L(:));
    n=histc(L(:),uniquL);
    [m,I]=sort(n);
    X=1-(L==uniquL(I(end-1)));
     
    subplot(2,1,2)
    imagesc(X);
    ici X est la matrice de ton image binaire.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  8. #8
    Membre régulier Avatar de biquet
    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 199
    Points : 105
    Points
    105
    Par défaut
    Lorsque j'applique le code que tu m'a fournit sur mon image, j'obtiens une image toute blanche et mon gros trait noire du milieu a disparu ?

    Mais ce que je désire réellemnt c faire un cadre avec la souris autour du défaut à éliminer et mettre les valeurs des pixels dans ce cadre à 0 ou 1.

    Pour faire un cadre, j'ai trouvé la fonction rbbox.

    est ce la bonne fonction et comment changer les valeurs dans le cadre?
    Tous en autodidacte :
    - LV 8.5 et LV 8.6 (en phase d'apprentissage)
    - Matlab 6.1
    - VB6

  9. #9
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Tu fais comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    figure
    subplot(2,1,1)
    imagesc(X);
     
    k = waitforbuttonpress;
    point1 = get(gca,'CurrentPoint');
    finalRect = rbbox;
    point2 = get(gca,'CurrentPoint');
     
    X(point1(3):point2(3),point1(1):point2(1))=1;
     
    subplot(2,1,2)
    imagesc(X);
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  10. #10
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Quel est le type de ton image ?
    Binaire, 0/1 ou 0/255, ou bien jpeg avec d'autres valeurs que 0/1 ou 0/255 ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  11. #11
    Membre régulier Avatar de biquet
    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 199
    Points : 105
    Points
    105
    Par défaut
    pour la photo que je vous ai fournie, c une jpg acves des valeurs 1 et 255 puis qqes pixel ayant d'autre valeurs.

    sinon dans mon prog , la photo en noir et blanc est une matrice nommé bw contenant que des 0 et des 1 (binaires donc)
    Tous en autodidacte :
    - LV 8.5 et LV 8.6 (en phase d'apprentissage)
    - Matlab 6.1
    - VB6

  12. #12
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut


    essaie BWLABEL comme ceci dans la première solution :
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  13. #13
    Membre régulier Avatar de biquet
    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 199
    Points : 105
    Points
    105
    Par défaut
    Pour que vous compreniez un peu mieux, voici un bout de mon code, sachant que l'utilisateur fixe lui même le h en choisissant le filtre et ses paramètres. donc ici j'ai fixé un filtre disk de paramètre 4


    l'image initiale en niveau de gris est la suivante :
    Pièce jointe 13349

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    img=imread('c:\test.jpg')
    level = graythresh(img)
    bw=im2bw(img,level)
    h=fspecial('disk',4);
    bw=imfilter(bw,h)
    bw=imfill(~bw,'hole')
    bw=~bw
    avec ce bout de code, j'obtiens l'image suivante

    Pièce jointe 13348

    et je veux éliminer les taches noires en sélectionnant les taches manuellement et mettre les valeurs des pixels en blanc ou noir.
    Tous en autodidacte :
    - LV 8.5 et LV 8.6 (en phase d'apprentissage)
    - Matlab 6.1
    - VB6

  14. #14
    Membre régulier Avatar de biquet
    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 199
    Points : 105
    Points
    105
    Par défaut
    Bonjour,

    Donc pas plus d'aide pour mon problème?

    Je pensais a une fonction du type ROIFILL mais pour des images binaires noir et blanc.

    si qqun a une suggestion, merci
    Tous en autodidacte :
    - LV 8.5 et LV 8.6 (en phase d'apprentissage)
    - Matlab 6.1
    - VB6

  15. #15
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    As-tu regardé de près la solution que je t'ai donnée... si j'exécute le code suivant avec ton image test.jpg, le résultat est convenable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    X=imread('test.jpg');
     
    X=X==255; % On s'assure que l'image est binaire 0/1
     
    figure
    colormap gray
     
    subplot(2,1,1)
    imagesc(X); % Affichage de l'image
     
    L=bwlabel(~X); % On labelise toutes les parties noires
    uniquL=unique(L(:));
    n=histc(L(:),uniquL); % On compte le nombre de pixels de chaque région
    [m,I]=sort(n);
    L=(L==uniquL(I(end-1))) % récupère la deuxième plus grande... parce que la première correspond aux pixels blanc (1)
    X=1-L; % On inverse chauque pixel car on a fait bwlabel(~X); précédemment
     
    subplot(2,1,2)
    imagesc(X); % Affichage de la nouvelle image
    C'est l'idée qui est importante... pas le code lui-même !
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  16. #16
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 57
    Points : 63
    Points
    63
    Par défaut
    si si, ça inspire

    disons que j'ai quelques questions de base à propos de ton code....

    1) pourquoi effectuer le filtrage après ta binarisation. Un filtrage (surtout moyenneur) n'a que peut d'effet sur une image aussi contrastée qu'une image binarisée.

    2) je pense que tu peux trouver un meilleur filtrage que fspecial pour pouvoir filtrer ton image. Un pré-filtrage gaussien sera meilleur, un préfiltrage médian sera encore meilleur

    3) je pense que la solution de Dutmatlab est pas mauvaise, ou du moins à exploiter

  17. #17
    Membre du Club Avatar de pwfsic
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 56
    Points : 53
    Points
    53
    Par défaut
    Ce que tu peux peut être faire pour sélectionner les régions que tu veux effacer, c'est utiliser la fonction roipoly.
    Ca permet à l'utilisateur de sélectionner "à la main" des régions sur une image.

    Après tu récupères les coordonnées des pixels de la région sélectionnée et tu leur donnes une nouvelle valeur.

    Je sais pas si c'est exactement ça que tu souhaites faire mais ça marche pas mal même si c'est un peu de la bidouille
    Matlab 7.4.0.287 (R2007a)

  18. #18
    Membre régulier Avatar de biquet
    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 199
    Points : 105
    Points
    105
    Par défaut
    merci pour vos réponse, j'y planche et je vous dit quoi

    Pour répondre a tes question Pingu1

    1) voir la discussion

    http://www.developpez.net/forums/sho...d.php?t=265984

    2) que veut tu dire par préfiltrage gaussien ou median ?

    Tous en autodidacte :
    - LV 8.5 et LV 8.6 (en phase d'apprentissage)
    - Matlab 6.1
    - VB6

  19. #19
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 57
    Points : 63
    Points
    63
    Par défaut
    En fait, tu commences par binariser ton image, puis tu effectues un filtrage pour nettoyer les parasites.

    La fonction fspecial avec le paramètre 'disk' effectue un filtrage moyenneur de ton image: prend tous les pixels dans le disque de rayon 4 et affecte la moyenne de ces points au pixel central. Ceci a pour effet d'atténuer les hautes fréquences de ton image (filtrage passe-bas). Or, étant donné que tu filtres une image binarisée, tu n'as que des très très hautes fréquences (passage de 0 à 1 sans valeurs intermédiaires). Donc ton filtrage 'disk' ne sert pas à grand chose dans ton code.

    Par contre, si tu effectues ton filtrage sur ton image de base (test.jpg au lieu de bw), tu vas commencer par modifier ton image (le filtre passe-bas 'disk' permet d'adoucir ton image), et après, quand tu vas binariser ton image, tes zones parasites étant plus "floues", certaines seront prises comme étant des données de fond de ton image.

    Le filtre moyenneur et par ailleurs un très mauvais filtre en traitement d'images (il est classique mais détruit beaucoup d'information). Un filtrage gaussien (paramètre 'gaussian' de la fonction fspecial) te donnera de meilleurs résultats (très bon code sur cette page). Tu peux aussi faire un filtrage médian (dont tu peux trouver des codes sur le forum en cherchant un peu), filtrage qui te permettra de ne pas dégrader ton image et de supprimer pas mal de parasites dans ton image (bruit de type impulsionnel).

    tu pourras t'en rendre compte en faisant tourner ce bout de prog:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    clc;
     
    clear all; close all;
     
    img=imread('F:\test.jpg');
     
    figure;
    colormap(gray);
    imagesc(img);
     
    figure,
    h=fspecial('disk',4);                       % filtre moyenneur de rayon 4
    ImaFilter1=imfilter(img,h);
    subplot(2,2,1);
    colormap(gray);
    imagesc(ImaFilter1);
    title('Image filtrée disk de rayon 4');
     
    h=fspecial('disk',8);                       % filtre moyenneur de rayon 8
    ImaFilter2=imfilter(img,h);
    subplot(2,2,2);
    imagesc(ImaFilter2);
    title('Image filtrée disk de rayon 8');
     
    level = graythresh(ImaFilter1);             % binarisation APRES filtrage
    bw=im2bw(ImaFilter1,level);
    subplot(2,2,3);
    imagesc(bw);
    title('Image filtrée puis binarisée');
     
    level = graythresh(ImaFilter2);             % binarisation ARPES filtrage
    bw=im2bw(ImaFilter2,level);
    subplot(2,2,4);
    imagesc(bw);
    title('Image filtrée puis binarisée');
     
    bw=imfill(~bw,'hole');
    bw=~bw;

  20. #20
    Membre régulier Avatar de biquet
    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 199
    Points : 105
    Points
    105
    Par défaut
    je sais que vos remarques sont trés judicieuses et m'ont permis d'apprendre des choses supplémentaire sur matlab mais j'ai opté pour cette solution même si ce n'est pas la meilleure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    k = waitforbuttonpress;
        point1 = get(gca,'CurrentPoint'); % button down detected
        finalRect = rbbox; % return figure units
        point2 = get(gca,'CurrentPoint'); % button up detected
        point1 = point1(1,1:2); % extract x and y
        point2 = point2(1,1:2);
        p1 = min(point1,point2); % calculate locations
        offset = abs(point1-point2); % and dimensions
        x = [p1(1) p1(1)+offset(1) p1(1)+offset(1) p1(1) p1(1)];
        y = [p1(2) p1(2) p1(2)+offset(2) p1(2)+offset(2) p1(2)];
        hold on
        axis manual
        plot(x,y) % redraw in dataspace units
        x = p1(1);
        width = offset(1);
        y = p1(2);
        height = offset(2);
        bw(y:y+height,x:x+width)=1;
        figure; 
        hold on;
            imshow(bw)
    ma question est la suivante :
    comment fais t'on pour que mes modifications et ma photo initiale ne fasse plus qu'une seule photo ?
    Tous en autodidacte :
    - LV 8.5 et LV 8.6 (en phase d'apprentissage)
    - Matlab 6.1
    - VB6

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/04/2015, 12h00
  2. [XL-2010] Affecter une valeur à une sélection dans une zone combinée
    Par lilmonie dans le forum Excel
    Réponses: 9
    Dernier message: 29/07/2014, 11h57
  3. Sélection d'une ligne variant suivant la valeur
    Par CélineM dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 12/06/2007, 11h34
  4. Réponses: 2
    Dernier message: 08/01/2007, 08h36
  5. Réponses: 3
    Dernier message: 22/06/2006, 15h14

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