Du spectre visible au modèle RVB

Etape 1

J'ai préféré aborder le problème sans équation mathématique. A partir d'un spectre lumineux récupéré sur Internet [cliquer pour le visualiser], j'ai tenté d'obtenir des relations empiriques entre la longueur d'onde l d'une couleur du spectre et sa représentation RVB.

A partir de 7 zooms sur le spectre continue du logiciel, j'ai effectué des recopies d'écran que j' ai collé dans photoshop, chaque sélection retenue faisant 755 x 180 pixels. J'ai assemblé alors les 7 bandes dans une image RVB 24 bits de dimension 5258 x 180 px, obtenant ainsi un spectre s'étendant de 370 à 720 nm (fig. ci-contre)

Le problème était alors de récupérer pour chaque pixel associé à une valeur de l, les 3 composantes RVB. Pas question de relever à la main les 5258 pixels du spectre! J'ai enregistré l'image au format .bmp 24 bits, format sans compression et susceptible d'être lue en Vbasic.

Etape 2

Dans un premier temps, j'ai essayé d'écrire une petite application en Vbasic pour relever ces valeurs. Cette application affichait le spectre et grâce une fonction « pipette de couleur » balayant l'image, j'ai relevé la couleur RVB que j'ai placé dans un fichier texte avec son abscisse en nm.

L'analyse du fichier se révéla décevante, car les valeurs relevées par la pipette (méthode point() ) ne traduisait pas les nuances du spectre et les valeurs passaient brutalement d'un nombre à un autre très différents).

Etape 3

J'ai alors décidé de créer trois fichiers en gris distincts pour chaque composante RVB à partir de photoshop. Pour cela, à partir du fichier bmp, j'ai isolé chaque couche que j'ai copié dans une nouvelle image. J'ai réduit la hauteur de chaque image à 1 pixel. (donc 5258 x 1 px) Chaque image a été enregistrée au format bmp en 256 niveaux de gris (8 bits)