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 :

Passer d'un rendu RGB par calculs à un rendu RYB par une table


Sujet :

Traitement d'images

  1. #61
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    quand je click sur expose 2
    en haut a droit je vois
    Nom : expose2.PNG
Affichages : 590
Taille : 2,8 Ko

    pour son test il ne manque rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        IF (Rho<R1) THEN  // si rho est dans le premier cercle
           Px:= F1(Rho, Vref)// j'en fais ce que je veux.
        ELSE   // SINON 
          IF (Rho<R2) THEN  // si rho est dans le deuxieme cercle
            Px:= F2(Rho, Vref)// j'en fais ce que je veux.
          ELSE  // SINON je suis a l'exterieur des cercle
             Px:= Pfnd;        // initialisés à (170, 170, 170)
    imagine que tu est 2 cercle concentrique
    le plus grand est R2 et le plus Petit est R1
    R1 est a peu prés égale (3/4)*R2

    Si ton point est inférieur à la moitie de ton rayon alors tu lui applique la fonction d’éclaircissement
    sinon
    si ton point est inférieur au rayon tu lui applique une fonction d'assombrissement
    sinon c'est la couleur du fond


    CONST m = 255; Im = 1 / 255; R1 = 0.36; R2 = 0.48; R3 = R2 - R1;

    dans son exemple il a pris une couleur de référence
    Pref: Pixel = (0, 255, 170);
    d'ou toutes les nuances d'une même couleur sur le cercle

    tout cela ne correspond pas a ta demande initiale
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  2. #62
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par anapurna Voir le message
    quand je click sur expose 2
    en haut à droite je vois
    Nom : expose2.PNG
Affichages : 590
Taille : 2,8 Ko
    Moi aussi.
    Ce post no 29 c'est celui que j'appelle "exposé 2", donc tout va bien.

    Citation Envoyé par anapurna Voir le message
    pour son test il ne manque rien
    --snip--
    10 lignes d'explications là où un simple "oui" de trois lettres aurait suffi.
    Et il y a donc bien quelque chose qui ne va pas :
    Citation Envoyé par anapurna Voir le message
    tout cela ne correspond pas à ta demande initiale
    C'est bien ce qu'il me semblait...
    Mais je pensais que l'ami wiwaxia allait se reprendre et réorienter le code vers un dégradé multicolore (dont il a d'ailleurs parlé).

    Bon, ce n'est peut-être pas possible avec des formules mathématiques, auquel cas on arrête de se prendre la tête, et s'il n'y a pas moyen d'éliminer les artefacts trop lumineux, on va dire que l'affaire est faite, d'autant plus qu'en testant le code allemand du DrawGradient d'une manière très simple (DrawGradient(Image1.Canvas, Image1.GetChildrenRect(False), True, [clBlack, clRed, clWhite]);), je découvre dans le rendu, aux alentours de 230,0,0 (un peu à gauche du centre de l'image) un artefact représenté par une bande rouge verticale de quelques pixels un peu plus lumineuse que le milieu de l'image, à 255,0,0.
    Il faut une image assez grande pour le voir, avec 360x256 c'est bien.

    Sont-ce mes yeux ? Mon écran ? Une correction du cerveau (sur quels critères ?) comme on peut en voir dans les tests des droites courbes mais parallèles en réalité, et les gris différents du plateau d'échecs qui sont en fait identiques ?
    Si on a affaire à des artefacts de cet ordre, alors ce n'est pas la peine d'essayer de les combattre, si on les sort par la porte ils reviendront pas la fenêtre.
    Faut vivre avec.

    Juste revoir un peu le code de Nebulix à la lumière de la formule oubliée.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #63
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Jipété Voir le message
    ... Bon, ce n'est peut-être pas possible avec des formules mathématiques, auquel cas on arrête de se prendre la tête ...
    Oh, mais si ! Je suis en plein dedans ...

    Citation Envoyé par Jipété Voir le message
    ... Mais je pensais que l'ami wiwaxia allait se reprendre et réorienter le code vers un dégradé multicolore (dont il a d'ailleurs parlé)
    Pour limiter les difficultés, j'ai testé la fonction radiale du code sur une couleur donnée, afin d'observer ce que l'on pouvait obtenir pour diverses valeurs des seuils (R1, R2).

    Citation Envoyé par Jipété Voir le message
    ... Juste revoir un peu le code de Nebulix à la lumière de la formule oubliée.
    À propos, justement

    @ Nebulix: j'ai testé ta fonction, et j'ai constaté qu'elle variait entre -180° et +180°. Est-ce voulu ?

    Nom : ArctNebulix.png
Affichages : 341
Taille : 4,9 Ko


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  4. #64
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Passer d'un rendu RGB par calculs à un rendu RYB par une table
    J'ai envisagé une séquence de palettes, dans lesquelles le coefficient affectant la teinte cyan dépend d'une constante (C) comprise entre zéro et l'unité.

    Cela donne ceci:
    Nom : Rectangle_C = 0 à 0.400.png
Affichages : 314
Taille : 265,9 Ko
    Nom : Rectangle_0.500 à 1.png
Affichages : 324
Taille : 355,4 Ko

    Le résultat n'est pas emballant. Qu'en pensez-vous ?

    Je vais regarder un procédé autre que celui des fonctions définies par morceaux.


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  5. #65
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par Nebulix Voir le message
    J'ai bien obtenu mon résultat avec mon code (sinon comment ?)
    Rhôôô la la, mais comment ça dépote avec le retour de la fonction perdue, , 12 msec à peine pour calculer ça (je ne compte pas le temps d'ouverture du fichier) :
    Nom : noflou.png
Affichages : 337
Taille : 42,9 Ko

    Ceux qui veulent jouer pourront se faire plaisir, y a tout là-dedans, faut juste utiliser un TImage de 360x256 pour l'affichage (quoique, on pourrait tout aussi bien s'en passer et enregistrer le bitmap final -- chacun verra midi à sa porte) :
    J'ai fait un peu de ménage, y avait des bouts non utilisés, et j'ai rajouté un poil d'optimisation et des commentaires.
    Enjoy, et grand merci à Nebulix
    Code pascal : 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
    procedure TForm1.Button1Click(Sender: TObject);// nebulix
    type
      b3 =array [1..3] of byte;
      b3a=array [0..2000] of b3;
      pb3a = ^b3a;
    var
      x,y,x2,y2,xc,yc,r{,phi}:integer;
      optim_y_moins_yc, optim_y_moins_yc_au_carre: integer;
      hauteur_fic_sur_yc: single;
      bb: b3;
      p,q: pb3a;
      bm1,bm2: tbitmap;
      GTC: DWord;
     
      function atgs(a,b:single):single;
      var x:single;
      begin
        if abs(a)<1.0e-6 then begin
          if b>0 then x:=90 else x:=-90;
        end else
        begin
          //x:=arctan(b/a)*180/pi; // une division c'est coûteux en temps machine, paraît-il
          x := ToDegrees(-arctan(b/a)+Pi); // pour démarrer le rouge à 3 h 
          if a<0 then if x>0 then x:=x-180  else x:=x+180;
        end;
        result:=x;
      end;
     
    begin
      bm1:=tbitmap.create;
      bm2:=tbitmap.create;
      bm1.loadfromfile(programdirectory+'mapdegrRYB360v2.bmp'); // 360*256
      bm2.loadfromfile(programdirectory+'mapdegrRYB360v2.bmp'); 
      image1.Canvas.Draw(0,0,bm1);
      //image2.Canvas.Draw(0,0,bm2); // sert juste de vérif
      xc:=180; yc:=128; // moitiés de la largeur et de la hauteur du TImage container cible
      hauteur_fic_sur_yc := 256 / yc;
      GTC := GetTickCount;
      bm1.BeginUpdate(); // lazarus
      for y := 0 to bm1.Height -1 do begin
        optim_y_moins_yc := y - yc;
        optim_y_moins_yc_au_carre := optim_y_moins_yc * optim_y_moins_yc;
        P := bm1.ScanLine[y];
        for x := 0 to bm1.Width -1 do begin   //
          r := trunc(sqrt(sqr(x-xc)+optim_y_moins_yc_au_carre));
          if r >= yc then begin // extérieur du cercle, en noir -- r >= évite des artefacts à 3 h
            bb[1]:=0; bb[2]:=0; bb[3]:=0; //1 bleu 2 vert 3 rouge
          end
          else begin // intérieur du cercle
            //y2 := trunc(r*255/yc);
            y2 := trunc(r*hauteur_fic_sur_yc);
            q  := bm2.scanline[y2]; // lecture seulement donc pas besoin d'update
            x2 := trunc(atgs(x-xc,optim_y_moins_yc))+180;
            bb := q^[x2];  //chapeau pour Laz
          end;
          P^[x] := bb; //chapeau pour Laz -- ici évite un doublon dans if then else dessus
        end;
      end;
      bm1.EndUpdate(); // lazarus
      Caption := Format('Durée : %d ms', [GetTickCount - GTC]);
      image2.Canvas.Draw(0,0,bm1);
    end;



    Citation Envoyé par Nebulix Voir le message
    Le calot a été obtenu en calculant phi à partir du coin gauche (0,0) au lieu du centre du cercle puis en forçant sa variation à 360 avec un facteur ad hoc.
    Tu pourras préciser la partie en gras ?
    Merci,

    Citation Envoyé par Nebulix Voir le message
    je dois faire correspondre le rayon de mon cercle avec la hauteur de ton image (256)
    mon image source (le dégradé rectangulaire) ou l'image destination (qui pour le moment fait également 256) ?
    Attention à la confusion !


    ---
    Citation Envoyé par wiwaxia Voir le message
    Le résultat n'est pas emballant. Qu'en pensez-vous ?
    Croisement de posts, je regarderai plus en détail plus tard.
    Vit' vit', le bleu est fort !
    Le cyan à 0.4, 0.5, c'est pas mal.
    Ah, un vrai RYB aurait le vert bien au milieu de l'image, donc faut augmenter le rouge et l'orange (et le bleu diminuera, et peut-être aussi le rouge au bout à droite).

    Et je vous fais part d'une réflexion récente : me suis demandé si le jaune, toujours trop fort, c'était pas lié au fait qu'il faut activer (sur un tube cathodique c'est plus parlant que sur des dalles à led's) 2 canons pour avoir la couleur, donc deux fois plus d'énergie lumineuse qu'un rouge tout seul ou un bête vert.
    Non ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #66
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 132
    Points
    15 132
    Par défaut
    Bonsoir,
    Citation Envoyé par wiwaxia Voir le message
    Le résultat n'est pas emballant. Qu'en pensez-vous ?
    en plus de ce que j'ai dit à la va-vite tout-à-l'heure, je viens de faire une petite construction avec The Gimp, afin de montrer le déplacement léger du vert vers la droite, en prenant l'image avec C à 0.5, que j'ai coupée en deux moitiés identiques, ensuite j'ai agrandi la partie gauche de 250 à 275 et réduit la partie droite de 250 à 225.

    J'ai raccordé les deux morceaux et ça donne ça :

    Nom : 275-225.png
Affichages : 332
Taille : 14,2 Ko

    C'est peut-être trop, 275-225, il faudrait tenter 270-230 ou 265-235, je laisse ça aux courageux,

    Par ailleurs, je ne sais pas si c'est possible avec tes algos, mais pour faire des tests visuels, tu aurais meilleur compte, dans un premier temps, de générer des barres de teintes différentes, sans dégradés, genre

    Nom : 24patches-32px.png
Affichages : 567
Taille : 1,1 Ko
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #67
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Passer d'un rendu RGB par calculs à un rendu RYB par une table
    Citation Envoyé par Jipété Voir le message
    ... Par ailleurs, je ne sais pas si c'est possible avec tes algos, mais pour faire des tests visuels, tu aurais meilleur compte, dans un premier temps, de générer des barres de teintes différentes, sans dégradés, genre

    Nom : 24patches-32px.png
Affichages : 567
Taille : 1,1 Ko
    Superbe la palette.

    Résulte-elle d'une sélection visuelle, ou as-tu défini les composantes couleur des 24 barres?
    Les as-tu éventuellement trouvées sur le Web ?


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  8. #68
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 132
    Points
    15 132
    Par défaut
    Bonjour,
    Citation Envoyé par wiwaxia Voir le message
    Superbe la palette.
    Merci merci merci mais, non, tu me taquines : le jaune principal est trop fort et encadré par deux jaunes trop forts aussi et dont il se distingue mal.
    Faudra que je revoie ça...

    Citation Envoyé par wiwaxia Voir le message
    Résulte-t-elle d'une sélection visuelle, ou as-tu défini les composantes couleur des 24 barres?
    Les as-tu éventuellement trouvées sur le Web ?
    J'en ai pas mal parlé (revoir le premier post, mais certaines valeurs ont évolué depuis -- bientôt une nouvelle version) : il s'agit d'une moyenne retouchée de plusieurs roues chromatiques récupérées à gauche à droite sur le web et analysées à coups de color picker.
    Des choses comme ça (qui est déjà un montage by me de 2 roues) :
    Nom : mix_12patch-int_colwhil-ext_alignés_sur_180.png
Affichages : 575
Taille : 31,6 Ko
    Hé oui, l'appréciation de l'œil est plus agréable que le rendu des formules mathématiques,
    On notera que la moyenne aurait pu être autre, elle est fonction de ce que j'ai moissonné dans les champs du web (qui déjà dépend de ce qui y a été semé, de comment ça a levé, etc.), donc une grosse part de hasard intervient dans ce résultat...

    Cadeau pour la collec', trouvé hier soir (pub pour un opticien) :
    Nom : pub_télé.jpg
Affichages : 340
Taille : 29,0 Ko

    Là, pour le moment, je me bats avec le code parfait de Nebulix dans lequel je remplace l'ouverture du fichier par la création depuis la matrice, justement, et si ça fonctionne bien, il suffit que je rajoute une instruction de floutage du bitmap source avec ses 24 barres pour que la sortie soit complètement en vrac, alors que le TImage témoin est bon dans les deux cas, 24 barres ou flouté.
    Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      MakeMap; // génère le bitmap "map"
      //map := Floute(map, 24, 20); met la sortie en vrac si décommenté, mais pas le contrôle dessous qui est toujours bon
      image1.Canvas.Draw(0,0,map);// contrôle toujours ok mais final kc si floute
    L'image1 c'est celle qui est en haut à gauche :
    Nom : sans_flou-réduit.png
Affichages : 329
Taille : 34,8 Ko
    Nom : avec_flou-réduit.png
Affichages : 320
Taille : 79,0 Ko
    images légèrement réduites.

    Une histoire de scanline, à tous les coups.
    On savait que le traitement du bitmap sous Lazarus dans Linux était le parent archi-pauvre et complètement fauché mais là, on touche le fond...

    En plus je ne vais pas être dispo ce matin.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  9. #69
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut
    Le calot a été obtenu en calculant phi à partir du coin gauche (0,0) au lieu du centre du cercle puis en forçant sa variation à 360 avec un facteur ad hoc.
    Vu d'en haut à gauche, le cercle se voit sous un angle d'environ 45°. Donc j'obtenais une légère variation de la nuance. J'ai bêtement multiplié cette phase par le facteur permettant une variation de 360° (8 environ), ce qui permet de balayer toute la largeur du bitmap de référence.
    Cette discussion est très intéressante en ce qui concerne l'aspect "qualité de l'écriture du logiciel" en particulier la difficulté de transmission d'un logiciel d'une personne à une autre. De ce point de vue, je reconnais que j'ai fait toutes les erreurs possibles, au point d'avoir du mal à le reprendre moi même !
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  10. #70
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Passer d'un rendu RGB par calculs à un rendu RYB par une table
    Citation Envoyé par Jipété Voir le message
    ... mais, non, tu me taquines : le jaune principal est trop fort et encadré par deux jaunes trop forts aussi et dont il se distingue mal.
    Faudra que je revoie ça ...
    Je vois que tu privilégies les teintes complexes, à 3 composantes non nulles.

    Nom : Palette_Jpt #66.png
Affichages : 344
Taille : 45,7 Ko


    Citation Envoyé par Jipété Voir le message
    J'en ai pas mal parlé (revoir le premier post, mais certaines valeurs ont évolué depuis -- bientôt une nouvelle version) : il s'agit d'une moyenne retouchée de plusieurs roues chromatiques récupérées à gauche à droite sur le web et analysées à coups de color picker.
    Des choses comme ça (qui est déjà un montage by me de 2 roues) :
    Nom : mix_12patch-int_colwhil-ext_alignés_sur_180.png
Affichages : 575
Taille : 31,6 Ko
    Hé oui, l'appréciation de l'œil est plus agréable que le rendu des formules mathématiques,
    On notera que la moyenne aurait pu être autre, elle est fonction de ce que j'ai moissonné dans les champs du web (qui déjà dépend de ce qui y a été semé, de comment ça a levé, etc.), donc une grosse part de hasard intervient dans ce résultat...
    Simple critique: je trouve qu'il y a au voisinage de O°/360° une discontinuité de teinte et de clarté trop importante.

    PS: Peut-être pourrais-tu procéder à un lissage, en convenant éventuellement de maintenir quelques valeurs remarquables (6 ?) constantes ?
    Par exemple:
    C'1 = (C24 + 2*C1 + C2)/4 , C'2= (C1 + 2*C2 + C3)/4 , ... Ck = (Ck-1 + 2*Ck + Ck+1)/4 ... C'24 = (C23 + 2*C24 + C1)/4 .
    Cela permettrait de réduire certaines variations de teintes, trop rapides.

    On est entré ici dans un domaine très subjectif.

    # Pour la 3me couleur, lire (246, 88, 11).


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  11. #71
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par Nebulix Voir le message
    au point d'avoir du mal à le reprendre moi même !

    Merci pour l'explication.

    Citation Envoyé par wiwaxia Voir le message
    Je vois que tu privilégies les teintes complexes, à 3 composantes non nulles.
    Je ne privilégie rien du tout, j'ai pris ce que j'avais sous la main et les moyennes sont sorties toutes seules.
    Je les ai ensuite un poil adaptées, un peu comme quand tu découpes du bois à l'égoïne : faut bien le finir au papier de verre, hein,

    Citation Envoyé par wiwaxia Voir le message
    PS: Peut-être pourrais-tu procéder à un lissage, en convenant éventuellement de maintenir quelques valeurs remarquables (6 ?) constantes ?
    Par exemple:
    C'1 = (C24 + 2*C1 + C2)/4 , C'2= (C1 + 2*C2 + C3)/4 , ... Ck = (Ck-1 + 2*Ck + Ck+1)/4 ... C'24 = (C23 + 2*C24 + C1)/4 .
    Cela permettrait de réduire certaines variations de teintes, trop rapides.
    Tu as testé cette formule (just curious) ?
    De mon côté, je vais faire une toute petite pause pour construire l'idée qui m'est venue ce midi, qui va consister en un outil permettant d'ajuster les couleurs en direct pour avoir un rendu en live, ça sera plus confortable pour finaliser les 24 teintes.

    J'avais essayé avec des teintes "remarquables" mais elles se remarquaient trop, justement. Après tout, ce n'est pas parce que le rouge sort du tube à 255,0,0 qu'il faut toujours l'utiliser à ces valeurs.

    Citation Envoyé par wiwaxia Voir le message
    On est entré ici dans un domaine très subjectif.
    L'art est un un domaine totalement subjectif, on est bien d'accord.

    Pour la collec' (ok, le rouge n'est pas vraiment rouge, mais l'orange est quand même plein de rouge, alors bon...) :
    Nom : logo_ecosia.png
Affichages : 318
Taille : 6,8 Ko
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  12. #72
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut
    A tout hasard ...Nom : cercle2.JPG
Affichages : 319
Taille : 27,9 Ko
    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
    procedure TForm1.Button2Click(Sender: TObject);
    var i,j,k,x2:integer;
    begin
    for i:=0 to 255 do begin
    palette[i,1]:=255 ;
    palette[i,2]:=i ;
    palette[i,3]:=0 ;
    end;
    for i:=0 to 255 do begin
    palette[i+256,1]:=255-i ;
    palette[i+256,2]:=255 ;
    palette[i+256,3]:=0 ;
    end;
    for i:=0 to 255 do begin
    palette[i+2*256,1]:=0 ;
    palette[i+2*256,2]:=255 ;
    palette[i+2*256,3]:=i ;
    end;
    for i:=0 to 255 do begin
    palette[i+3*256,1]:=0 ;
    palette[i+3*256,2]:=255-i ;
    palette[i+3*256,3]:=255 ;
    end;
    for i:=0 to 255 do begin
    palette[i+4*256,1]:=i ;
    palette[i+4*256,2]:=0 ;
    palette[i+4*256,3]:=255 ;
    end;
    for i:=0 to 255 do begin
    palette[i+5*256,1]:=255 ;
    palette[i+5*256,2]:=0 ;
    palette[i+5*256,3]:=255-i ;
    end;
    for j:=0 to 255 do begin
            q:=bm2.scanline[j];
            for i:=0 to 359 do  begin
            x2:=i*256*6 div 360;
            q[i]:=palette[x2];       end;
    end;
    image1.Canvas.Draw(0,0,bm2);
    end;
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  13. #73
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par Nebulix Voir le message
    A tout hasard ...
    RGB !
    Ne correspond pas au cahier des charges (sans compter la violence des couleurs pures, notamment le cyan).
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  14. #74
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut
    Ah ! il y a un cahier des charges ?
    Le post concernait au départ le passage du rectangle au disque.
    Si tu exprimes clairement ce que tu veux, ce sera plus facile de t'aider.
    En prime : encore un bug :

    Nom : rate2.JPG
Affichages : 316
Taille : 41,6 Ko
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  15. #75
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par Nebulix Voir le message
    Ah ! il y a un cahier des charges ?
    Le post concernait au départ le passage du rectangle au disque.
    Si tu exprimes clairement ce que tu veux, ce sera plus facile de t'aider.
    (Titre de la) discussion : Passer d'un rendu RGB par calculs à un rendu RYB par une table

    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  16. #76
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut
    Nom : cercle3.JPG
Affichages : 337
Taille : 28,4 Ko
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  17. #77
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 132
    Points
    15 132
    Par défaut
    Nom : wheel6patches_rgb.png
Affichages : 318
Taille : 1,4 Ko

    Nom : wheel6patches_ryb.png
Affichages : 309
Taille : 1,5 Ko
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  18. #78
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Passer d'un rendu RGB par calculs à un rendu RYB par une table
    En gros, quelque chose qui permette de passer de ceci:

    Nom : 0005_A.png
Affichages : 317
Taille : 12,5 Ko

    à cela:

    Nom : 0005_B.png
Affichages : 305
Taille : 117,5 Ko

    Pour la couleur du fond, j'ai sommairement improvisé.


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  19. #79
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 132
    Points
    15 132
    Par défaut
    Bonjour,

    Citation Envoyé par wiwaxia Voir le message
    Pour la couleur du fond, j'ai sommairement improvisé.
    rhôôô, j'aime bien le "sommairement", je vois de là tous les matheux au bord de l'orgasme, alors que je suis complètement largué à l'idée de refaire les mêmes images, l'une comme l'autre.

    Quand je pense que je suis sûr que certains, en voyant l'espèce de A en forme de signature dans l'image du haut, ont déjà trouvé la fonction qui permet de la dessiner, moi je jette l'éponge et le bâton de craie et le tableau noir,

    Je me rattrape ailleurs :
    Me revoili donc après deux jours de souffrance (la gestion des événements clavier c'est quelque chose...), et j'ai la joie l'honneur et le plaisir de vous présenter en avant-première une image de mon petit outil,

    Nom : 1er_essai_constructeur.png
Affichages : 549
Taille : 31,8 Ko

    qui m'aura permis de détecter une autre boulette dans les infos de l'ami wiwaxia puisque, comme on peut en juger sur l'image ci-dessous où j'avais déjà corrigé l'erreur qu'il nous avait remontée
    Citation Envoyé par wiwaxia Voir le message
    # Pour la 3me couleur, lire (246, 88, 11).
    , je rajoute donc que pour la colonne 20 il faut lire 165 pour le bleu (et non pas 065).
    Car pour construire mon image j'ai simplement recopié ses valeurs dans mon outil, et voilà le résultat avec ce mix des 2 rendus :

    Nom : compar_palette_wwx-outil_jpt.png
Affichages : 336
Taille : 55,8 Ko

    Quant à la colonne 15 (vous avez noté que ma numérotation commence à 0, mais dans ce post j'utilise celle de wwx), c'est moi qui me suis gourré et, trop pressé de vous montrer tout ça, je ne l'ai pas encore corrigée (244 au lieu de 178 pour le bleu, encore lui !).

    Ce qu'il y a de sympa, c'est une fois toutes les couleurs ajustées aux petis oignons, on peut cliquer sur le bouton en bas à droite et récupérer toutes les valeurs pour en faire ce qu'on veut, exemple de sortie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Panel19
    RGB : 101 027 065
    HSL : 329 58 25
     
    Panel20
    RGB : 129 021 161
    HSL : 286 77 36
    Allez, il y a encore des bricoler à ajuster (comme par exemple les sorties HSL formatées sur 3 chiffres).

    Et si vous avez des idées d'ajouts, c'est le moment de poster !
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  20. #80
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Passer d'un rendu RGB par calculs à un rendu RYB par une table
    Citation Envoyé par Jipété Voir le message
    ... alors que je suis complètement largué à l'idée de refaire les mêmes images, l'une comme l'autre.

    Quand je pense que je suis sûr que certains, en voyant l'espèce de A en forme de signature dans l'image du haut, ont déjà trouvé la fonction qui permet de la dessiner, moi je jette l'éponge et le bâton de craie et le tableau noir, ...
    Le graphe en profil de vague, d'équation réduite y = 1/(5.5 + 4.5*Sin(2*π*x)) ,
    est l'antécédent dans la transformation considérée de l'ellipse d'équation polaire
    ρ = 1/(5.5 + 4.5*Sin(θ)) ,
    bien visible dans la seconde image.

    C'est justement un des tests de validité de l'algorithme de la transformation.

    Il s'agit en fait de préparer des témoins, déduits d'équations identiques à celles de l'image initiale, et permettant d'apprécier la qualité du résultat obtenu pour la transformation que tu as imaginée. Un peu long à mettre au point, mais indispensable.
    Je commence à avoir une petite idée là dessus; dire que c'est simple est peut-être un peu exagéré ...

    Citation Envoyé par Jipété Voir le message
    ... pour construire mon image j'ai simplement recopié ses valeurs dans mon outil, et voilà le résultat avec ce mix des 2 rendus :
    Nom : 1er_essai_constructeur.png
Affichages : 549
Taille : 31,8 Ko
    Belle fenêtre, qui donne envie de maîtriser la programmation des trackbars.

    Citation Envoyé par Jipété Voir le message
    ... qui m'aura permis de détecter une autre boulette dans les infos de l'ami wiwaxia puisque, comme on peut en juger sur l'image ci-dessous où j'avais déjà corrigé l'erreur qu'il nous avait remontée , je rajoute donc que pour la colonne 20 il faut lire 165 pour le bleu (et non pas 065) ...
    Ma vue ne s'arrange pas avec le temps.


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/06/2007, 11h40
  2. [SQL] calcul de plusieurs variables dans une table
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/03/2006, 21h53
  3. Etat bloqué par une table
    Par aujero dans le forum Access
    Réponses: 4
    Dernier message: 06/02/2006, 17h53
  4. Réponses: 12
    Dernier message: 21/10/2005, 14h35
  5. Réponses: 4
    Dernier message: 13/10/2005, 14h44

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