Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Champ vectoriel pour prédire la transformation d'une couleur en fonctions de transf. déjà existantes



  1. #1
    LaCendre

    Champ vectoriel pour prédire la transformation d'une couleur en fonctions de transf. déjà existantes


    ------

    Bonjour,

    Je vais expliquer mon problème puis la solution (simplifiée) que je pense avoir trouvée mais sur laquelle je me pose quelques questions.

    J'ai des couleurs dont les composantes sont codées sur 5 bits, donc des triplets appartenant à l'ensemble fini , auxquelles on a fait correspondre des couleurs dont les composantes sont codées sur 8 bits, donc des triplets appartenant à l'ensemble fini

    Plus formellement, on peut définir la surjection (car deux couleurs 5 bits peuvent correspondre à une même couleur 8 bits) suivante: .

    Maintenant vous vous demandez peut-être pourquoi je cherche à faire tout ça. En fait (je suis programmeur), je dispose de deux versions, 5 bits et 8 bits, i.e. deux réprésentations différentes d'un même objet. J'estime que je pourrai avoir entre 1000 et 3000 correspondances de ce style ; je ne me suis pas encore embêté à déterminer toutes ces correspondances car je veux être sur ma méthode avant de l'appliquer, pas envie de perdre du temps pour rien. D'un autre côté j'ai d'autres images en 5 bits contenant des couleurs pour lesquelles je n'ai pas de couleurs 8 bits correspondantes, mais moi j'ai quand même besoin de pouvoir "traduire" ces couleurs de 5 vers 8 bits!

    Du coup moi j'ai pleeeeein d'associations de couleurs 5 bits et 8 bits, et après quelques jours de recherche j'ai enfin trouvé du vocabulaire pour avoir un "point de départ" pour ma solution, et ces termes sont le champ vectoriel et le gradient.

    En effet si on simplifie mon problème pour , on pourrait très bien avoir ce genre de chose

    https://fr.wikipedia.org/wiki/Champ_de_vecteurs -> l'image "Autre exemple".

    Que pensez-vous de mon approche? Si quelqu'un à une méthode plus simple que la mienne je suis preneur, mais franchement je ne vois d'autre modèle que celui-ci, car plus on est proche d'un point plus notre vecteur aura tendance à se laisser influencer par ce vecteur plutôt qu'un autre à l'autre bout du cube, je ne sais pas si je suis très clair, alors j'ai fais un dessin pour comparer:

    les images doivent êtres insérées comme pièces jointes, https://forums.futura-sciences.com/p...s-jointes.html

    J'avais pensé à simplifier le problème et à simplement utiliser le vecteur le plus proche, sachant que j'en aurais entre 1000 et 3000, avec très peu de vecteurs de départ ça aurait fait bizarre surtout si leur vecteur ont des direction et des normes diamétralement différentes, ce que je ne sais pas encore vu que je n'ai déterminer les 3000 correspondances entre les couleurs Pour le dessin précédent, ok on ne verrait quasiment pas la diff, mais sur le suivant on le voit bien:

    https://forums.futura-sciences.com/p...s-jointes.html

    Du coup est-ce que quelqu'un connait un logiciel qui fait ça ou au moins la méthode? Je peux écrire l'algo après mais je dois bien comprendre le principe pour ne pas écrire n'importe quoi.

    Je pense qu'il doit y avoir des constantes supplémentaires à faire varier etc? Par analogie avec les forces d'attraction entre les astres dans l'espace, qui sont fonctions de la distance les séparant, mais aussi de leurs masse respectives ; intuitivement je ne pense pas que des couleurs aient un "poids" plus élevé que d'autres, pour moi elles ont la même "importance" et donc la même masse, mais peut-être que je me trompe?

    est-ce que je dois voir le problème comme "on jette une pierre dans l'eau en (x,y,z)" ou "on rajoute un courant en (x,y,z)"? Si c'est la première solution alors tous les vecteurs que je rajoute sont indépendants les uns des autres: c'est le cas le plus facile, car je peux traiter indépendamment chaque vecteur. Par contre, si c'est la deuxième solution, je vais faire face à un gros système d'équation.

    Si je choisis la première techinque, que je change les vecteurs de départ et que je calcule le vecteur en un des points que j'avais dans mon "vrai" ensemble de départ, je ne retrouverai pas le même vecteur, alors qu'avec la seconde technique, je vais retrouver ce vecteur.

    Autre question mon formelle je pense, qu'est-ce que je fais si ça sort de l'enveloppe convexe du cube? Même si ça ne devrait pas "trop" arriver car aucun des vecteurs de référence ne va pointer vers en-dehors du cube (ou alors j'aurai inventé quelque chose je pense ) et en plus parmi mes 3000 de départ j'en aurait un peu partout dans le cube, genre un dans chaque coin qui pointe vers l'intérieur.

    Voilà merci d'avance à ceux qui m'auront lu!

    P.s.: Désolé je n'ai pas pu mettre mes images du coup j'ai mis les liens noelshack pour les mettre quand même.

    -----
    Dernière modification par albanxiii ; 12/11/2018 à 06h15.

  2. #2
    doul11

    Re : Champ vectoriel pour prédire la transformation d'une couleur en fonctions de transf. déjà exist

    Bonjour,

    Citation Envoyé par LaCendre Voir le message
    J'ai des couleurs dont les composantes sont codées sur 5 bits, donc des triplets appartenant à l'ensemble fini , auxquelles on a fait correspondre des couleurs dont les composantes sont codées sur 8 bits, donc des triplets appartenant à l'ensemble fini

    Plus formellement, on peut définir la surjection (car deux couleurs 5 bits peuvent correspondre à une même couleur 8 bits) suivante: .
    Je me suis arrêté là car je ne comprends rien, déjà 5 bits ça fait 32 valeur {0,...,31}, ensuite si tout est codé en RGB une application linéaire permet de convertir en 8 bit, et dans ce cas c'est plusieurs couleurs 8 bit qui vont correspondre a une couleur 5 bit, a cause de l'utilisation d'entiers.

    La première chose a définir clairement est le codage des couleurs en 5 et 8 bits.
    La logique est une méthode systématique d’arriver en confiance à la mauvaise conclusion.

  3. #3
    LaCendre

    Re : Champ vectoriel pour prédire la transformation d'une couleur en fonctions de transf. déjà exist

    Déjà merci d'avoir répondu, je pense que ce que tu n'as pas saisi dans mon problème c'est que je ne cherche pas simplement à convertir du 5 bits en 8 bits, c'est sûrement pour ça que tu me parle d'une application linéaire, mais moi mes correspondances connues de couleurs 5 bits vers 8 bits ont été établis par un artiste graphique sûrement, et comme je ne le connais pas personnellement je ne vais pas aller le voir pour lui demander "dis voir en quoi tu transformerait du (80, 88, 24)?"
    Je pense que j'aurai du donner un exemple car j'ai des trucs de ce style là: et non un simple *8, ce n'est pas une simple conversion mais une transformation, et quand j'ai parlé de vecteur bah pour l'exemple que je vient de donner ce serait le vecteur partant de vers et de coordonnées soit

  4. #4
    doul11

    Re : Champ vectoriel pour prédire la transformation d'une couleur en fonctions de transf. déjà exist

    Ok, je comprends mieux, t'est sur que *8 ça ne marche pas ? Parce que l’œil d'un artiste ...

    Si c'est les même couleurs c'est linéaire, après si c'est pas les même couleurs et que c'est basé sur du ressenti humain, il n'y a pas d’algorithme, c'est discret, tu a donc a minima 2^15 correspondances a trouver.

    Bon courage

    Peux-tu donner quelques exemples concret pour bien voir ?
    La logique est une méthode systématique d’arriver en confiance à la mauvaise conclusion.

  5. A voir en vidéo sur Futura
  6. #5
    LaCendre

    Re : Champ vectoriel pour prédire la transformation d'une couleur en fonctions de transf. déjà exist

    Merci d'avoir encore répondu, voici des échantillons au hasard:

    les images doivent êtres insérées comme pièces jointes, https://forums.futura-sciences.com/p...s-jointes.html

    Dans ce cas on ne voit pas la diff mais je rencontrerais d'autres cas ou du rouge "fade" en 5 bits devient une teinte spécial de orange en 8 bits!

    Pour résumer un peu mon problème et comprendre pourquoi je m'embête, c'est que en 5 bits l'oeil humain voit clairement la différence

    Car moi ce n'est pas le cas où on perd de l'info:



    Mais le cas où on en gagne:



    Et je ne suis pas idiot, je sais bien que c'est facile de perdre de l'info, mais pour en générer, il faut s'aider d'une échantillon existant.

    Tout ça nous ramène à ce que j'ai grossièrement appelé "l'oeil d'un artiste". Par ça je n'entends pas qu'il a la science infuse, mais cette personne (car elle existe) a choisi de transformer certaines couleurs en d'autres couleurs, en gagnant de l'information, puisque pour le jeu "ancienne génération" il disposait d'une palette de couleurs possibles contre pour faire les images du jeu "nouvelle génération", soit 512 fois plus. Et donc cette personne a choisi arbitrairement un "éloignement" plus ou moins fort avec la couleurs d'origine (des fois un bleu va devenir un tout petit peu plus bleu, alors qu'un vert va carrément devenir du rouge, mais si ce dernier cas est rare), dans une certaine "direction" (pour certaines il va rajouter du rouge, pour une autre du bleu, etc...), et moi par la méthode que j'ai (tant bien que mal) essayé de décrire j'espère, pour n'importe quelle couleur, bah plus elle est proche d'une couleur 5 bits dont on connait la transformée en 8 bits, bah plus elle va avoir tendance à varier pareil, et mon problème bah c'est que je ne sais pas comment modéliser ça, il me faudrait faire une genre de moyenne entre toutes les couleurs 5 bits initialement connues je pense car si je prends uniquement la couleur connue la plus proche d'un nouveau point, s'il y en avait à quasiii la même distance mais avec un vecteur totalement, bah je pourrais avoir du (c'est un cas extrême) et du au lieu d'avoir un truc "lisse" ^^

    Moi je fais tout ça car j'ai besoin d'utiliser des versions restaurées de certaines images du jeu "ancienne version" pour les mettre dans le jeu "nouvelle version", pour faire un effet "old school mais neuf"!

    Ce que je ne comprends pas c'est que si on a un unique vecteur initial bah pour toutes les autre couleurs en 5 bits j'ai juste à ajouter les coordonnées de ce vecteur pour trouver à quoi doivent ressembler les autres couleurs en 8 bits, mais j'ai vraiment le ressenti que c'est généralisable avec un nombre de vecteurs supérieur à 1, il doit bien exister une formule ou une technique avec de l'échantillonage je ne sais pas...?

    Bien entendu les couleurs de l'ensemble d'arrivée varient en fonction des correspondances 5_vers_8 bits de départ!
    Dernière modification par albanxiii ; 12/11/2018 à 06h15.

  7. #6
    LaCendre

    Re : Champ vectoriel pour prédire la transformation d'une couleur en fonctions de transf. déjà exist

    J'ai encore un peu avancé et j'ai découvert les notions de "Prédictions dynamiques" et de "Systèmes dynamiques", qui semblent assez bien représenter ce que je tente sans bien que mal d'expliquer depuis ce matin, cette théorie part du principe duquel j'étais aussi parti, à savoir qu'avec des conditions initiales défini on peut prédire avec exactitudes à quoi ressemblera le système après étapes (dans la pratique plus est grand plus ça part en c*******, mais moi c'est, il me semble, , puisque je cherche simplement à passer de 5 à 8 bits sans étapes intermédiaires.

  8. #7
    albanxiii
    Modérateur

    Re : Champ vectoriel pour prédire la transformation d'une couleur en fonctions de transf. déjà exist

    Citation Envoyé par LaCendre Voir le message
    P.s.: Désolé je n'ai pas pu mettre mes images du coup j'ai mis les liens noelshack pour les mettre quand même.
    Essayez encore, https://forums.futura-sciences.com/p...s-jointes.html
    Not only is it not right, it's not even wrong!

  9. #8
    doul11

    Re : Champ vectoriel pour prédire la transformation d'une couleur en fonctions de transf. déjà exist

    Citation Envoyé par LaCendre Voir le message
    J'ai encore un peu avancé et j'ai découvert les notions de "Prédictions dynamiques" et de "Systèmes dynamiques", qui semblent assez bien représenter ce que je tente sans bien que mal d'expliquer depuis ce matin, cette théorie part du principe duquel j'étais aussi parti, à savoir qu'avec des conditions initiales défini on peut prédire avec exactitudes à quoi ressemblera le système après étapes (dans la pratique plus est grand plus ça part en c*******, mais moi c'est, il me semble, , puisque je cherche simplement à passer de 5 à 8 bits sans étapes intermédiaires.
    Tu pars dans des ces délires

    Hey ! Tu est en train d'essayer de modéliser des choix artistiques, qui ne sont ni déterministe ni causal. A mon sens la seule chose a faire et de dialoguer avec l'artiste pour essayer de fixer les choses, quelle couleur change ou pas, si elle change est-ce toujours le même changement, sans quoi c'est ingérable, sauf au cas pas cas.
    La logique est une méthode systématique d’arriver en confiance à la mauvaise conclusion.

  10. #9
    Resartus

    Re : Champ vectoriel pour prédire la transformation d'une couleur en fonctions de transf. déjà exist

    Bonjour,
    Sous réserve d'avoir compris la question (vous n'expliquez toujours pas comment une couleur codée sur 5 bits peut avoir une valeur de 248, mais peu importe),
    il s'agit de reconstituer une application de R^3 en R^3 (et plus précisément du cube unité sur le cube unité, en considérant chaque codage RGB comme la partie fractionnaire d'un nombre compris entre 0 et 1), à partir d'un nombre réduit d'échantillons pour lesquels on connait la transformée.

    Il est vraisemblable, que cette transformation est plutôt lisse (c'est à dire que des couleurs voisines se transforment en couleurs voisines)
    et que des interpolations linéaires à partir du point connu le plus proche et des 3 points voisins (et formant une base) suffiront, au premier ordre pour trouver approximativement la transformée

    Mais cela n'est peut-être même pas nécessaire, et j'irais un cran plus loin dans mes suppositions : les transformations appliquées doivent être assez simples, mais le logiciel qui a été utilisé a travaillé en TSL : si vous analysez la transformation dans ce système de coordonnées, vous allez sans doute constater que les modifications sont "diagonalisées", c'est à dire qu'une même teinte de départ donnera la même teinte d'arrivée, quelle que soit sa luminosité ou sa saturation, et idem pour les deux autres paramètres
    Why, sometimes I've believed as many as six impossible things before breakfast

Discussions similaires

  1. Champ vectoriel
    Par ninomedj dans le forum Physique
    Réponses: 3
    Dernier message: 01/12/2017, 21h05
  2. Transformation du cuivre en couleur turquoise ?
    Par 07Tallinn dans le forum Chimie
    Réponses: 5
    Dernier message: 21/07/2016, 19h50
  3. sin(t) et le cos(t) seules fonctions périodiques existantes ??
    Par shero1040 dans le forum Mathématiques du supérieur
    Réponses: 10
    Dernier message: 28/01/2016, 15h14
  4. Champ vectoriel
    Par sasha.v dans le forum Physique
    Réponses: 4
    Dernier message: 06/11/2013, 14h30
  5. Champ scalaire / champ vectoriel
    Par Infra_Red dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 03/01/2010, 02h37