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 :

Reconstitution de plusieurs images


Sujet :

Images

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Reconstitution de plusieurs images
    Bonjour à tous,

    Je suis nouvelle sur ce forum, donc je m'excuse par avance si je ne comprends pas encore tout le fonctionnement .

    J'ai regardé les discussions qui se trouvaient dans cette partie de forum mais rien qui ne correspond à mon soucis.
    Je suis actuellement en train de travailler sur du traitement d'images, dont une partie concerne la compression (ondelettes).
    J'ai réussi à effectuer la partie compression et diviser mon image en plusieurs Tuiles (= ondelettes).
    A la fin de la compression, mon image s'affiche donc en différentes tuiles compressées.
    Mais je bloque sur le point suivant : Rassembler mes tuiles entre elles pour reformer la nouvelle image compressée.

    Mon idée était la suivante : créer une nouvelle matrice donc le point (i,j) correspondrait à une tuile (Exemple : Reconstitution(1,1)=Tuile(1), Reconstitution(1,2)=Tuile(2) etc..)

    Je souhaiterai savoir si certain d'entre vous aurait travailler sur un projet semblable et si vous auriez quelques petites idées pour aborder ce soucis .


    P.S : Mon image source suivie de mon Image divisée en Tuiles
    Nom : Image 03.jpg
Affichages : 329
Taille : 104,0 Ko
    Nom : Image_Tuile.PNG
Affichages : 309
Taille : 109,5 Ko

    Je vous remercie tous par avance et espère avoir été assez explicite sur mon problème .
    A bientôt
    AnneSoO

  2. #2
    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
    Est ce que tu souhaites mettre tes tuiles cote à cote pour faire une image finale qui serait la compression de la grande image ?
    Si oui, il te suffit de créer une image finale qui a la taille de la somme de tes quatre tuiles compressées, puis de copier tes tuiles dedans.
    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.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Tout d'abord merci ToTo13 de t'être penché sur mon problème .

    Oui en effet, je cherche bien à construire une image finale (compressée) qui serait l'assemblage de toutes ces tuiles (compressées).
    Ton idée rejoint celle que j'ai déjà essayé de créer :

    Code matlab : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    image_reconstituee = size(Tuile_YCbCr)*n;
     
                    for ligne = 1:l
                           for colonne = 1:c
                                  image_reconstituee(ligne,colonne)=Tuile_YCbCr(t);
                           end
                    end

    Avec :
    image_reconstituee = L'image finale compressées
    Tuile_YCbCr = Les Tuiles que j'ai créées auparavant
    n = nombres de lignes et de colonnes de Tuiles (exemple : si n=4, cela fait 4 lignes, 4 colonnes donc 4*4=16 Tuiles)
    l et c = Adressage des tuiles (lignes et colonnes) que j'ai utilisées précédemment pour créer ma compression
    t = Correspondance au numéro de la tuile (exemple : Tuile 1, Tuile2 etc...)

    Cependant, rien ne s'affiche.. Sauf un carrée blanc :/.
    Je sais que mon problème peut paraître simple, mais je crois que mon cerveau réfléchi à l'envers sur cette étape de mon code

    Si tu le souhaites, je peux rajouter le début de mon code pour que tu puisses voir exactement à quoi correspond chaque variables.
    Je te remercie déjà énormément de m'avoir apporté une réponse.
    A bientôt,
    AnneSoO

  4. #4
    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
    Je ne sais pas comment fonctionne MatLab, je déplace ta question dans le forum approprié
    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.

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    comment affiches-tu ton image? As-tu essayé avec imshow?
    Que renvoie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    whos image_reconstituee
    ?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour Magelan,
    Merci tout d'abord pour ton aide et désolé pour la réponse tardive.
    J'affiche en effet mon image avec la fonction "imshow" et de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    figure(2)                
    imshow(image_reconstituee,[]);
    "image-reconstituee" me renvoie l'image compressée et réalisée à partir de toutes les petites tuiles (qui sont les tuiles compressées de l'image)
    Cela me donne un carré blanc au centre .
    J'ai pensé à une autre option en essayant la fonction "cell2mat". Je me suis dit que stocker des matrices (= aux images) dans les cellules d'un tableau résoudrait mon soucis, mais en vain...

    Bonne journée à toi,
    AnneSoO

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Citation Envoyé par magelan Voir le message
    Que renvoie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    whos image_reconstituee
    ?
    Et Tuile_YCbCr, c'est un tableau de cellules? Ta boucle avec l et c me parait étrange.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  8. #8
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour Magelan,
    Alors "Tuile_YCbCr" représente une seule tuile (elle porte le nom YCbCr derrière pour indiquer qu'elle est dans le domaine YCbCr au lieu de RVB).
    Ensuite, je multiplie avec "n" pour avoir le nombre total de tuiles, puis j'attaque ma boucle avec l et c qui représentent les lignes et colonnes des tuiles.
    J'ai peut-être réfléchi à l'envers sur cette partie je te l'accorde .

    Je suis en train d'essayer avec la fonction "montage" en ce moment... Je vais peut-être pouvoir y arriver avec cela.
    Il faut juste que ma boucle prenne en compte que le nombre de tuiles peut-être variable (suivant le choix de l'utilisateur sur "n").

    Souhaites-tu que je te montre tout le code en entier pour que tu puisses mieux te situer sur le sujet?

    Bonne journée,
    AnneSoO

  9. #9
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Oui, ce serait plus simple avec le code complet.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  10. #10
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Voici le code :-)
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
     
    clear all
    clc
     
    % Initialisation
    compoHF=[];
    compoDelta=[];
    predicteur=[1 0 0 0];
     
    % Chargement de l'image dans l'espace de travail
    X = imread ('C:\Users\abouteiller\Documents\MATLAB\Code\Compression\Image 03.jpg');
    X = double(X);
     
     
    %% Choix Tuiles / Coefficient de qualite / nombre d'iteration
    choixNbreTuiles = menu('Choix du nombre de tuiles','1x1 (1 tuile)','2x2 (4 tuiles)','4x4 (16 tuiles)','8x8 (64 tuiles)');
    switch (choixNbreTuiles)
        case 1
            n=1;
        case 2
            n=2;
        case 3
            n=4;
        case 4
            n=8;
    end 
     
    message = {'Entrer le coefficient de qualité (entre 0 et 100) : '};
    titreDialogue = 'Choix de l''indice de qualité';
    nbrLignes = 1;
    valeurParDefault = {'50'};
    qualite = cell2mat(inputdlg(message,titreDialogue,1,{'50'}));
    qualite = str2num(qualite);          
     
    nbreIteration = 2; %menu('Sélection du nombre d''itération','1','2','3','4');
     
     
    %% Calcul du seuil
    seuil1=2^(15*(100-qualite)/100);
    seuil2 = 2^(15*(100-(qualite-40))/100);
     
     
    %% Décomposition des tuiles
     
    %Dimension des tuiles
    tailleImage=size(X);
    T1=tailleImage(1)/10;
    T2=tailleImage(2)/10;
    M=tailleImage(1)/n; % 1 correspond aux lignes de l'image initiale
    N=tailleImage(2)/n; % 2 correspond aux colonnes de l'image initiale
     
     
    compo3=[];
     
     
    t=0;
    for l=1:n           % n= nombre de tuiles en lignes
        for c=1:n
            debutLigne_Tuile=(l*M)-M+1;   
            finLigne_Tuile=l*M;
            debutCol_Tuile=(c*N)-N+1;
            finCol_Tuile=c*N;
            Tuile1=X(debutLigne_Tuile:finLigne_Tuile,debutCol_Tuile:finCol_Tuile,1);
            Tuile2=X(debutLigne_Tuile:finLigne_Tuile,debutCol_Tuile:finCol_Tuile,2);
            Tuile3=X(debutLigne_Tuile:finLigne_Tuile,debutCol_Tuile:finCol_Tuile,3);
            Tuile=cat(3,Tuile1,Tuile2,Tuile3);
            Tuile=uint8(Tuile);
     
            %% Compression de la tuile
     
            %YCbCr
            Tuile_YCbCr = rgbversycbcr(Tuile); 
            compo2 = [];   
            for composante = 1:3  % Adressage des composantes (Y, Cb ou Cr)
                if composante == 1
                  seuil = seuil1; % Application du premier seuil de quantification (composante de luminance Y)
                else
                  seuil = seuil2; % Application du second seuil de quantification (composantes de chrominance Cb et Cr)
                end
                seuil=uint8(seuil);
                LL  = Tuile_YCbCr(:,:,composante) - 128; % Sélection de la composante courante et ajustement de la dynamique
     
                compoDELTA_prim = []; 
     
                %nombre d'iterations
                for i=1:nbreIteration
                    %DWT
                    [LL,HL,LH,HH] = imgdwt(LL);
     
                    %Quantification des images hautes fréquences
                    [HLq,deltaHL] = quantificationHF(HL,seuil);
                    [LHq,deltaLH] = quantificationHF(LH,seuil);
                    [HHq,deltaHH] = quantificationHF(HH,seuil);
                    hl=HLq';
                    lh=LHq';
                    hh=HHq';
     
                    %Stockage des données en colonne
                    compoHF=[hl(:);lh(:);hh(:);compoHF];
                    compoDELTA_prim=[deltaHL;deltaLH;deltaHH;compoDELTA_prim];
     
                    i=i+1;
                end
     
                LL_dpcm = dpcm(LL,predicteur);             %Codage DPCM sur l'image basse fréquence
                compoDelta = [compoDelta;compoDELTA_prim];
     
                compo1 = [LL_dpcm(:);compoHF];             % Composantes correspondant à une composante couleur dans une tuile
                compo2 = [compo2;compo1];                  % Composantes correspondant à une tuile 
            end
     
            compo3 = [compo3;compo2];  
     
            %--- Passage de YCbCr vers les niveaux de gris ---%
            I = double(Tuile_YCbCr)/255.0;
            I = rgb2gray(I);
     
            %--- Détection de contours ---%
            % Filtre Prewitt
            [Gh_prewitt,Gv_prewitt,G_prewitt,G_prewitt_seuil] = Prewitt(I); % Appel de la fonction Prewitt créée à part
     
            %Affichage des tuiles
            t=t+1;
            figure(1)
            subplot(n,n,t)
            imshow(G_prewitt_seuil,[]);
     
           %% Essai de l'affichage de toutes les tuiles assemblées avec la fonction cell2mat mais sans succès
             %image_reconstituee = size(G_prewitt_seuil);
             %C = {[image_reconstituee]*n}; 
             %A = cell2mat(C); % cell2mat(tableau)
     
        end
     
           %% Essai de l'affichage de toutes les tuiles assemblées avec une boucle mais sans succès     
    %           for ligne = 1:l
    %               for colonne = 1:c
    %                   image_reconstituee(ligne,colonne)=G_prewitt_seuil(t);
    %               end
    %           end
    end
     
    %                   figure(2)                
    %                   imshow(image_reconstituee,[]);
     
     
    msgbox('L''image a été compressée avec succès','Compte rendu')

  11. #11
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    J'ai l'impression que tu écrases G_prewitt_seuil à chaque itération, non?

    Essaie ceci (j'ai modifié la fin du code, en rouge) :
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    clear all
    clc
     
    % Initialisation
    compoHF=[];
    compoDelta=[];
    predicteur=[1 0 0 0];
     
    % Chargement de l'image dans l'espace de travail
    X = imread ('C:\Users\abouteiller\Documents\MATLAB\Code\Compression\Image 03.jpg');
    X = double(X);
     
     
    %% Choix Tuiles / Coefficient de qualite / nombre d'iteration
    choixNbreTuiles = menu('Choix du nombre de tuiles','1x1 (1 tuile)','2x2 (4 tuiles)','4x4 (16 tuiles)','8x8 (64 tuiles)');
    switch (choixNbreTuiles)
        case 1
            n=1;
        case 2
            n=2;
        case 3
            n=4;
        case 4
            n=8;
    end 
     
    message = {'Entrer le coefficient de qualité (entre 0 et 100) : '};
    titreDialogue = 'Choix de l''indice de qualité';
    nbrLignes = 1;
    valeurParDefault = {'50'};
    qualite = cell2mat(inputdlg(message,titreDialogue,1,{'50'}));
    qualite = str2num(qualite);          
     
    nbreIteration = 2; %menu('Sélection du nombre d''itération','1','2','3','4');
     
     
    %% Calcul du seuil
    seuil1=2^(15*(100-qualite)/100);
    seuil2 = 2^(15*(100-(qualite-40))/100);
     
     
    %% Décomposition des tuiles
     
    %Dimension des tuiles
    tailleImage=size(X);
    T1=tailleImage(1)/10;
    T2=tailleImage(2)/10;
    M=tailleImage(1)/n; % 1 correspond aux lignes de l'image initiale
    N=tailleImage(2)/n; % 2 correspond aux colonnes de l'image initiale
     
     
    compo3=[];
     
     
    t=0;
    for l=1:n           % n= nombre de tuiles en lignes
        for c=1:n
            debutLigne_Tuile=(l*M)-M+1;   
            finLigne_Tuile=l*M;
            debutCol_Tuile=(c*N)-N+1;
            finCol_Tuile=c*N;
            Tuile1=X(debutLigne_Tuile:finLigne_Tuile,debutCol_Tuile:finCol_Tuile,1);
            Tuile2=X(debutLigne_Tuile:finLigne_Tuile,debutCol_Tuile:finCol_Tuile,2);
            Tuile3=X(debutLigne_Tuile:finLigne_Tuile,debutCol_Tuile:finCol_Tuile,3);
            Tuile=cat(3,Tuile1,Tuile2,Tuile3);
            Tuile=uint8(Tuile);
     
            %% Compression de la tuile
     
            %YCbCr
            Tuile_YCbCr = rgbversycbcr(Tuile); 
            compo2 = [];   
            for composante = 1:3  % Adressage des composantes (Y, Cb ou Cr)
                if composante == 1
                  seuil = seuil1; % Application du premier seuil de quantification (composante de luminance Y)
                else
                  seuil = seuil2; % Application du second seuil de quantification (composantes de chrominance Cb et Cr)
                end
                seuil=uint8(seuil);
                LL  = Tuile_YCbCr(:,:,composante) - 128; % Sélection de la composante courante et ajustement de la dynamique
     
                compoDELTA_prim = []; 
     
                %nombre d'iterations
                for i=1:nbreIteration
                    %DWT
                    [LL,HL,LH,HH] = imgdwt(LL);
     
                    %Quantification des images hautes fréquences
                    [HLq,deltaHL] = quantificationHF(HL,seuil);
                    [LHq,deltaLH] = quantificationHF(LH,seuil);
                    [HHq,deltaHH] = quantificationHF(HH,seuil);
                    hl=HLq';
                    lh=LHq';
                    hh=HHq';
     
                    %Stockage des données en colonne
                    compoHF=[hl(:);lh(:);hh(:);compoHF];
                    compoDELTA_prim=[deltaHL;deltaLH;deltaHH;compoDELTA_prim];
     
                    i=i+1;
                end
     
                LL_dpcm = dpcm(LL,predicteur);             %Codage DPCM sur l'image basse fréquence
                compoDelta = [compoDelta;compoDELTA_prim];
     
                compo1 = [LL_dpcm(:);compoHF];             % Composantes correspondant à une composante couleur dans une tuile
                compo2 = [compo2;compo1];                  % Composantes correspondant à une tuile 
            end
     
            compo3 = [compo3;compo2];  
     
            %--- Passage de YCbCr vers les niveaux de gris ---%
            I = double(Tuile_YCbCr)/255.0;
            I = rgb2gray(I);
     
            %--- Détection de contours ---%
            % Filtre Prewitt
            [Gh_prewitt,Gv_prewitt,G_prewitt,G_prewitt_seuil] = Prewitt(I); % Appel de la fonction Prewitt créée à part
     
            %Affichage des tuiles
            t=t+1;
            figure(1)
            subplot(n,n,t)
            imshow(G_prewitt_seuil,[]);
            
            G_prewitt_seuil_fin{l,c} = G_prewitt_seuil;
    
     
           %% Essai de l'affichage de toutes les tuiles assemblées avec la fonction cell2mat mais sans succès
             %image_reconstituee = size(G_prewitt_seuil);
             %C = {[image_reconstituee]*n}; 
             %A = cell2mat(C); % cell2mat(tableau)
     
        end
     
           %% Essai de l'affichage de toutes les tuiles assemblées avec une boucle mais sans succès     
    %           for ligne = 1:l
    %               for colonne = 1:c
    %                   image_reconstituee(ligne,colonne)=G_prewitt_seuil(t);
    %               end
    %           end
    end
     
    G_prewitt_seuil_fin = cell2mat(G_prewitt_seuil_fin);
     
    
                      figure(2)                
                      imshow(G_prewitt_seuil_fin,[]);
     
     
    msgbox('L''image a été compressée avec succès','Compte rendu')
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  12. #12
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    magelan... UN ENOOORME MERCI, tout simplement!
    ça faisait des jours et des jours que je me prenais la tête sur cette partie qui, normalement simple, est devenue prise de tête de jour en jour.
    Les aléas de la programmation .

    Voici ce que j'obtiens (les images sont en binaire car pour effectuer ma détection de contour je suis repassée en binaire) :
    Nom : Image_Tuile.JPG
Affichages : 254
Taille : 27,3 KoNom : Image_reconstituee.JPG
Affichages : 283
Taille : 32,0 Ko


    Pour ceux qui ont remarqué, on peut apercevoir qu'à certain endroit mes "raccords" ne sont pas effectués correctement. Ceci est dû à ma détection de contour appliquée auparavant.

    En tous les cas, je suis toujours autant épatée de voir que des gens (comme toi )sont capables de se plonger dans des programmes qu'ils n'ont pas créés et de voir où sont les erreurs..
    Encore merci

    AnneSoO

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

Discussions similaires

  1. Changer plusieurs images d'un coup
    Par YanK dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 18/07/2005, 17h33
  2. [ImageMagick] Générer une image à partir de plusieurs images ?
    Par fichtre! dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 16/02/2005, 15h32
  3. [DirectDraw7] Affichage de plusieurs image bmp
    Par SteelBox dans le forum DirectX
    Réponses: 3
    Dernier message: 24/04/2004, 19h00
  4. Economie de mémoire pour plusieur images avec la même source
    Par neness dans le forum Composants VCL
    Réponses: 5
    Dernier message: 18/01/2004, 10h56

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