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 :

Découper une image selon des coordonnées


Sujet :

Images

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2012
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Découper une image selon des coordonnées
    Bonsoir à tous,
    Je cherche s'il vous plaît quelqu'un qui pourra m'aider.

    En fait mon problème est que j'ai une image originale qui représente un mot écrit en français par exemple "ami".

    Ce que je voulais exactement c'est extraire "a" dans une image ,"m" dans une autre image et "i" de même, afin que je puisse faire des traitements sur ces petits bouts. L'information concernant les frontières de chaque lettre je l'ai déjà dans une matrice de nombres de 2 colonne puisque j'ai pour chaque lettre deux frontières et de nombre de lignes le nombre de lettres.

    J'ai fait un essai mais ça ne marche pas car ça extrait uniquement une seule image et erronée même
    voilà le bout de code que j'ai fait

    A est une matrice remplie par des valeurs
    23 27
    33 45
    52 71
    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
    A %matrice qui contient les frontières
    [rowsM,colsM]=size(A);
    [rowsI,colsI]=size(I);%I c'est l'image originale
    cci=1;%image originale compteur ligne
    cla=1;%matrice A compteur ligne
    cnli=1;%nouvelle image compteur ligne
    cnci=1;%nouvelle ligne compteur colone
    for cli=1:rowsI %image originale compteur colonne
        if (cla<=rowsM)
            cca=1;%matrice A colone
            val1=A(cla,cca);%frontière 1
            ccainc=cca+1;
            val2=A(cla,ccainc);%frontière 2
            %ce que j'ai entre val1 et val 2 c'est la nouvelle image
            while (cci<val1) %je saute tous les indices avant val1
                cci=cci+1;
            end
            cci
            while (cci<=val2)%ici je fais l'extraction de l'image
                Tn(cnli,cnci)=I(cli,cci);%Tn c'est la nouvelle image mais en fait elle ne     devra pas être une seule
                %normalement 3 images si je traite "ami" quatre image si je traite
                %"beau" ainsi de suite
                cci=cci+1;
                cnli=cnli+1;
                cnci=cnci+1;
            end
            cci=cci-1;
            cla=cla+1;
        end
    end
    ce que je veux faire c'est comment faire trois images ou 4 ou 5 (ça dépend de l'image) à l'intérieur de la boucle
    Merci d'avance et je serai très reconnaissante si quelqu'un peut m'aider

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Tu as la possibilité de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    J = I(idebut : ifin , jdebut : jfin);
    ce qui te prélève l'image pour
    i dans [idebut,ifin]
    j dans [jdebut,jfin]
    Cela devrait te faciliter la tâche

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2012
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Winjerome Voir le message
    Bonjour,

    Tu as la possibilité de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    J = I(idebut : ifin , jdebut : jfin);
    ce qui te prélève l'image pour
    i dans [idebut,ifin]
    j dans [jdebut,jfin]
    Cela devrait te faciliter la tâche
    Bonjour,
    Merci ça facilite vraiment la tâche (m'économise des boucles des variables inutiles) et finalement ça m'affiche les images que je veux

    voilà ce que j'ai changé
    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
     
     
    A %matrice qui contient les frontières
    [rowsM,colsM]=size(A);
    [rowsI,colsI]=size(I);%I c'est l'image originale
    cci=1;%image originale compteur ligne
    cla=1;%matrice A compteur ligne
    cnli=1;%nouvelle image compteur ligne
    cnci=1;%nouvelle ligne compteur colone
    %for cli=1:rowsI %image originale compteur colonne
    for k=1:rowsM
    if (cla<=rowsM)    
            cca=1;%matrice A colone
            val1=A(cla,cca);%frontière 1
            ccainc=cca+1;
            val2=A(cla,ccainc);%frontière 2
            J = I(1 :rowsI , val1 : val2);
            figure;
            imshow(J);
            cla=cla+1;
    end
    end

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

Discussions similaires

  1. [AC-2010] Découper une chaine selon des critères en début et en fin
    Par docjo dans le forum VBA Access
    Réponses: 4
    Dernier message: 14/10/2013, 07h58
  2. Réponses: 0
    Dernier message: 11/06/2013, 07h17
  3. Positionner une image selon des coordonnées
    Par abracadabra18 dans le forum Débuter
    Réponses: 12
    Dernier message: 18/06/2012, 12h32
  4. [C#] Centrer une image sur des coordonnées précises
    Par Towandaa dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 27/03/2012, 16h00
  5. découper une variable selon des balises
    Par cirdec49 dans le forum C#
    Réponses: 8
    Dernier message: 20/02/2009, 19h29

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