vision des couleurs et création dimages pascal lamboley et jean-marcel piriou

36
Vision des couleurs et création d’images Vision des couleurs et création d’images Pascal Lamboley et Jean-Marcel Piriou

Upload: yvon-courtois

Post on 03-Apr-2015

110 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Vision des couleurs et création d’imagesVision des couleurs et création d’imagesPascal Lamboley et Jean-Marcel Piriou

Page 2: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

SommaireSommaire La vision des couleurs par l’œil humain La vision des couleurs chez les insectes, mammifères, primates

Le RVB comme famille libre et génératrice des couleurs visibles? Couleurs additives, soustractives, monochromatiques

Le format image PPM Gestion des transparences couleur

Page 3: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Vision des couleurs par l’œil humain: cônes et bâtonnetsVision des couleurs par l’œil humain: cônes et bâtonnets

Bâtonnets (1 type): vision nocturneBâtonnets (1 type): vision nocturne

Cônes (3 types): vision diurneCônes (3 types): vision diurne

Page 4: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Vision des couleurs par l’œil humain: spectres Vision des couleurs par l’œil humain: spectres d’absorption des cônes (vision diurne)d’absorption des cônes (vision diurne)

• Couleurs et convolutionCouleurs et convolution• Pigeons, insectes, mammifères non primatesPigeons, insectes, mammifères non primates• Trichromie humaine et berceau africain Trichromie humaine et berceau africain • Daltonisme / Vision féminineDaltonisme / Vision féminine• RVB libre et génératrice? RVB libre et génératrice?

Page 5: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Vision et résolutionVision et résolution

Œil humain: pouvoir séparateur de 1.E-4 rad environŒil humain: pouvoir séparateur de 1.E-4 rad environ

Écran de PC / station: 1280x1024 points, écran de 60 cm vu à 70 cm Écran de PC / station: 1280x1024 points, écran de 60 cm vu à 70 cm 7.E-4 rad 7.E-4 radProjecteur RVB: 1024x768 points, écran de 2 m vu à 7 m Projecteur RVB: 1024x768 points, écran de 2 m vu à 7 m 3.E-4 rad 3.E-4 rad

MammifèresMammifères

Œil du condorŒil du condor

Page 6: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Persistance rétinienne et animationPersistance rétinienne et animation

Œil humain: persistance rétinienne de 1/20 sŒil humain: persistance rétinienne de 1/20 sCinéma muet: 16 images/s Cinéma muet: 16 images/s sensation de saccadé sensation de saccadéCCinéma actuel: 24 à 30 images/s inéma actuel: 24 à 30 images/s dessins animés dessins animésVidéo: 30 images/sVidéo: 30 images/sSite WEB W3: de 5 à 15 images/sSite WEB W3: de 5 à 15 images/s

Un mouvement fluide demande plus de 23 images/sUn mouvement fluide demande plus de 23 images/s

Quid du chien et de la mouche au cinéma?Quid du chien et de la mouche au cinéma?

Page 7: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

La vision: un cocktail de plusieurs ingrédientsLa vision: un cocktail de plusieurs ingrédients

Sens chromatiqueSens chromatique

RésolutionRésolution

Renouvellement des imagesRenouvellement des images

Vision du relief, du mouvementVision du relief, du mouvement

Page 8: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Couleurs additivesCouleurs additives

Couleurs additives primaires: rouge, vert, bleu Téléviseurs, moniteurs, projecteurs

Page 9: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Couleurs soustractivesCouleurs soustractives

Couleurs soustractives primaires: cyan,magenta, jaune- Cyan = bleu + vert = blanc – rouge filtre le rouge!- Magenta = rouge + bleu = blanc – vert filtre le vert!- Jaune = rouge + vert = blanc – bleu filtre le bleu!

Imprimantes, aquarelles

Page 10: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Lien couleurs additives / soustractivesLien couleurs additives / soustractives

Les couleurs additives et soustractives primaires entretiennent entre elles une relation très simple: elles sont inverses vidéo!…

Page 11: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Couleurs monochromatiquesCouleurs monochromatiques

Leur spectre est un Dirac à une longueur d’onde donnée

Rayonnement monochromatique bleu: active le seul cône bleu

Rayonnement monochromatique jaune: active également les cônes rouges et verts

Page 12: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou
Page 13: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Le format image PPM (Portable PixMap): une Le format image PPM (Portable PixMap): une écriture directe des triplets RVBécriture directe des triplets RVB

P6#600 400#255#(255)(000)(000)(000)(000)(200)…

# = retour chariot

Pour une image de Nx points en X et Ny points en Y, la taille du fichier PPM associé sera de (3*Nx*Ny+ quelques octets pour l’en-tête)

Exemple: 600x400 environ 720 ko

Page 14: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Exemple d’écriture de fichier PPM: dégradé de rougeExemple d’écriture de fichier PPM: dégradé de rouge

program demo!! Taille de l'image.!ix=600 ; iy=400!! En-tête du fichier PPM.!open(1,file='image_rouge.ppm',form='formatted')write(1,fmt='(a)') 'P6'write(1,fmt='(2i6)') ix,iywrite(1,fmt='(i6)') 255!! Ecriture des triplets RVB.!do jy=1,iy do jx=1,ix zratiox=real(jx-1)/real(ix-1) ir=max(0,min(255,int(256.*zratiox))) iv=0 ib=0 write(1,fmt='(3a)',advance='no') char(ir),char(iv),char(ib) enddoenddoclose(1)end

Page 15: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou
Page 16: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Exemple d’écriture de fichier PPM: RVB avec R+V+B Exemple d’écriture de fichier PPM: RVB avec R+V+B constantconstant

program demointeger, allocatable :: irvb(:,:,:)!! Taille de l'image.!ix=600 ; iy=400 ; allocate (irvb(3,ix,iy))!! Ecriture des triplets RVB.!do jy=1,iy zratioy=real(jy-1)/real(iy-1) do jx=1,ix zratiox=real(jx-1)/real(ix-1) irvb(1,jx,jy)=max(0,min(255,int(256.*zratiox))) ! Rouge en X. irvb(2,jx,jy)=max(0,min(255,int(256.*zratioy))) ! Vert en Y.

irvb(3,jx,jy)=max(0,min(255,255-irvb(1,jx,jy)-irvb(2,jx,jy))) ! Bleu: le complément à 1. enddoenddo!! Ecriture du fichier PPM.!call img_ecr('demo3.ppm',ix,iy,irvb)end

Page 17: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou
Page 18: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Exemple de lecture / écriture de fichier PPM: filtrageExemple de lecture / écriture de fichier PPM: filtrage

program paletteinteger, allocatable :: irvb(:,:,:)real, allocatable :: zchamp(:,:)character*200 clppm1,clppm2clppm1='perroquet.ppm' clppm2='demo5.ppm' !!-------------------------------------------------! Lecture d'une image.!-------------------------------------------------!call img_taille(clppm1,ix,iy) ! Taille de l’image d’entrée.allocate (irvb(3,ix,iy)) ! Allocation du tableau des triplets RVB.call img_lec(clppm1,ix,iy,irvb) ! Lecture des triplets sur le tableau irvb.!!-------------------------------------------------! Filtrage des 2/3 du bleu.!-------------------------------------------------!do jy=1,iy

do jx=1,ixirvb(3,jx,jy)=max(0,min(255,irvb(3,jx,jy)/3))

enddoenddo!! Ecriture du fichier PPM.!call img_ecr(clppm2,ix,iy,irvb)end

Page 19: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou
Page 20: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou
Page 21: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Application au tracé de champs météorologiquesApplication au tracé de champs météorologiques

1. Colorisation de champs 2D

2. Saisie de palettes externes

3. Fondus et transparences

Page 22: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

1. Colorisation de champs 2D1. Colorisation de champs 2D

program paletteinteger, allocatable :: irvb(:,:,:)real, allocatable :: zchamp(:,:)!! Taille de l'image.!ix=8640 ; iy=4320 ; allocate (zchamp(ix,iy)) ; allocate (irvb(3,ix,iy))!!-------------------------------------------------! Lecture du champ.!-------------------------------------------------!open(1,file='relief_5km.dta',form='unformatted') ; read(1) zchamp ; close(1)!!-------------------------------------------------! Application d'une palette .!-------------------------------------------------!call palette_noir_vert_jaune_rouge(ix,iy,zchamp,irvb)!! Ecriture du fichier PPM.!call img_ecr('demo4.ppm',ix,iy,irvb)end

Page 23: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Subroutine palette_noir_vert_jaune_rouge(kx,ky,pchamp,krvb)Integer krvb(3,kx,ky)Real pchamp(kx,ky)Integer, parameter :: jppal = 4Integer ipalette(3,jppal)!! Tabulation des points de passage.!ipalette(1,1)=000 ; ipalette(2,1)=000 ; ipalette(3,1)=000 ! Noir. ipalette(1,2)=000 ; ipalette(2,2)=255 ; ipalette(3,2)=000 ! Vert.ipalette(1,3)=255 ; ipalette(2,3)=255 ; ipalette(3,3)=000 ! Jaune.ipalette(1,4)=255 ; ipalette(2,4)=000 ; ipalette(3,4)=000 ! Rouge.!! Extrêmes du champ réel d’entrée.!zmin=minval(pchamp) ; zmax=maxval(pchamp)!! La valeur du champ est convertie en couleurs,! Selon une ligne brisée comportant jppal points de passage.!do jy=1,ky

do jx=1,kxzpassage= real(jppal)*(pchamp(jx,jy)-zmin)/(zmax-zmin)ipassage=max(1,min(jppal,1+int(zpassage)))ipassage1=min(jppal,ipassage+1)zf=zpassage-int(zpassage)do jcoul=1,3

zoctet= (1.-zf)*real(ipalette(jcoul,ipassage)) & & + zf* real(ipalette(jcoul,ipassage1)) krvb(jcoul,jx,jy)=max(0,min(255,nint(zoctet)))

enddoenddo

enddoend

Page 24: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou
Page 25: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

2. Exemple de saisie de palette externe2. Exemple de saisie de palette externe

Page 26: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Exemple de saisie de palette externeExemple de saisie de palette externe

Page 27: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

3. Epaisseur optique et gestion des transparences couleur3. Epaisseur optique et gestion des transparences couleur

Page 28: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Epaisseur optique et gestion des transparences couleurEpaisseur optique et gestion des transparences couleur

fleur. une comme couche la versephoton tra le que

éprobabilit lasoit que tel :optiqueEpaisseur etdir

aF

Ftdif

Frdir F Frdif

1 difdirdifdir rrtta

E Ftdir

Page 29: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Epaisseur optique et gestion des transparences couleurEpaisseur optique et gestion des transparences couleur

• Si la transparence t est la même pour R,V et B, si l’émission est égale à l’absorption (loi de Kirchhof), et r=0 on obtient

- R = (1-t) Rpp + t Rf- V = (1-t) Vpp + t Vf- B = (1-t) Bpp + t Bf

• Pour gérer une couche hémi-transparente, on peut souvent se placer dans un cadre plus simple:

• On a un fond et un premier plan.• Le fond est défini en chaque point par sa couleur: Rf, Vf, Bf.• Idem premier plan: Rpp, Vpp, Bpp.

Page 30: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Fondu: transparence fonction de l’abscisseFondu: transparence fonction de l’abscisse

Page 31: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Transparence fonction de la nébulositéTransparence fonction de la nébulosité

Page 32: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Transparence fonction de la nébulositéTransparence fonction de la nébulosité

Page 33: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Transparence fonction de la nébulositéTransparence fonction de la nébulosité

Page 34: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Transparence fonction de la nébulositéTransparence fonction de la nébulosité

Page 35: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Passage PPM Passage PPM autres formats: usage de convert autres formats: usage de convert

GIF JPG

TIFF

PPM

PS, EPS

ETC!…

Page 36: Vision des couleurs et création dimages Pascal Lamboley et Jean-Marcel Piriou

Conclusions vision et base RVBConclusions vision et base RVB

1. La vision colorimétrique humaine se ramène assez bien à trois degrés de liberté

2. Le format PPM permet de lire/écrire aisément des images via FORTRAN ou C

3. Convert permet de passer dans les deux sens de PPM aux autres formats GIF, JPG, TIFF, etc...