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

Algorithmes et structures de données Discussion :

Manipulation de tableau


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Points : 32
    Points
    32
    Par défaut Manipulation de tableau
    Bonsoir,

    voila j'a ai fait un petit algo qui fait un especce de "zoom" sur un tableau:

    par ex: un Tab de 4x4 si je zoom 2x plus j'au un tab de 8x8
    et donc je met 3fois le meme pixel dans le premeir tableau..

    genre:

    1 2 3 4
    5 6 7 8
    ....

    devien:

    1 1 2 2 3 3 4 4
    1 1 2 2 3 3 4 4
    5 5 6 6 7 7 8 8
    5 5 6 6 7 7 8 8
    etc...

    voila l'algo:



    CompteurX,CompteurY,Compteur,Compteur2 : Natural := 1;



    for I in 1..12 loop


    for J in 1..12 loop



    Matricezoom(I,J) := Matrice(Compteurx,Compteury);

    if Compteur = 2 then
    Compteury := Compteury + 1;
    Compteur :=1;
    else
    Compteur := Compteur +1;
    end if;


    end loop;
    Compteur := 1;
    Compteury := 1;

    if Compteur2 = 2 then
    Compteurx := Compteurx + 1;
    Compteur2 :=1;
    else
    Compteur2 := Compteur2 +1;
    end if;

    end loop;

    j'aurai voulut savoir, si c'était possible d'ammélioré ceci?, ou de rednre plus compact ?

    d'avance merci!

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Salut
    Avec 4 boucles on y arrive : on recopie chaque élément de la première table dans 4 cases des la deuxième table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    pour i de 1 à 2 par pas de 1 faire
      pour j de 1 à 4 par pas de 1 faire
        pour k de 1 à 2 par pas de 1 faire
          pour l de 1 à 2 par pas de 1 faire
             Matricezoom(2*(i-1)+k, 2*(j-1)+l) = Matrice(i,j)
          fin pour
        fin pour
      fin pour
    fin pour
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i in 1..12 loop
       for j in 1..12 loop
          Matrice_Zoom(i, j) := Matrice((i+1)/2, (j+1)/2);
       end loop;
    end loop;
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Joli
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    hehe, Trap Dm j'avais aussi trouvé un moyen avec 4 boucle

    mais c'est Hyyyyyyyper lourd (merci quand meme)

    Jean-Marc.... Joli :bonne qui tire son chapeau:

    merci

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    ah, mais je vien de penser a quelque chose,

    si je veux faire un zoom de 3 ,4 ou 5... (autre que deux..)

    ton code ne marche plus

  7. #7
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par BoBy9
    ah, mais je vien de penser a quelque chose,

    si je veux faire un zoom de 3 ,4 ou 5... (autre que deux..)

    ton code ne marche plus
    Quand les indices commencent à 0 plutot qu'à 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Matrice_Zoom(i, j) := Matrice(i/N, j/N);
    Donc si ça commence à 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Matrice_Zoom(i, j) := Matrice((i-1)/N+1, (j-1)/N+1);
    ce qu'on peut réécrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Matrice_Zoom(i, j) := Matrice((i+N-1)/N, (j+N-1)/N);
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    ah d'accord,

    encore merci!

  9. #9
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    C'est encore moi

    je vient donc d'améliorer le zoom avec l'aide jean-Marc.Bourguet (merci)

    mais je me disait disait si c'était possible de "lisser" l'image

    apres un zoom de 4 (sur une imag de 128x128 par ex)

    l'iamge devien tres tres pixelisé, donc j'ai essayé de lisser,

    j'ai pensé de faire une "moyenne" comme ceci (se sont les niveaux de gris)

    image original

    86 || 165 || 200 || 101

    apres un zoom de "Deux"

    je fait la moyene de 86 et de 165
    ensuite la moyene de 126 et 200 etc...

    est -ce que ça sera une bonne solution?

    ou bien y'a-t-il mieu?


    merci

Discussions similaires

  1. Manipulation de tableau
    Par fifi87 dans le forum Assembleur
    Réponses: 1
    Dernier message: 13/12/2006, 17h17
  2. [Tableaux] Manipulation de tableau
    Par Diss dans le forum Langage
    Réponses: 5
    Dernier message: 29/08/2006, 18h08
  3. manipuler un tableau <table> </table>
    Par faico dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/08/2006, 09h51
  4. [Tableaux] Manipulation de tableau
    Par BenoitDenis dans le forum Langage
    Réponses: 3
    Dernier message: 04/04/2006, 09h49

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