La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Vision des couleurs et création d’images Pascal Lamboley et Jean-Marcel Piriou."— Transcription de la présentation:

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

2 Sommaire 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

3 Vision des couleurs par l’œil humain: cônes et bâtonnets Bâtonnets (1 type): vision nocturne Cônes (3 types): vision diurne

4 Vision des couleurs par l’œil humain: spectres d’absorption des cônes (vision diurne) Couleurs et convolution Couleurs et convolution Pigeons, insectes, mammifères non primates Pigeons, insectes, mammifères non primates Trichromie humaine et berceau africain Trichromie humaine et berceau africain Daltonisme / Vision féminine Daltonisme / Vision féminine RVB libre et génératrice? RVB libre et génératrice?

5 Vision et résolution Œil humain: pouvoir séparateur de 1.E-4 rad environ Écran de PC / station: 1280x1024 points, écran de 60 cm vu à 70 cm  7.E-4 rad Projecteur RVB: 1024x768 points, écran de 2 m vu à 7 m  3.E-4 rad Mammifères Œil du condor

6 Persistance rétinienne et animation Œil humain: persistance rétinienne de 1/20 s Cinéma muet: 16 images/s  sensation de saccadé Cinéma actuel: 24 à 30 images/s  dessins animés Vidéo: 30 images/s Site WEB W3: de 5 à 15 images/s Un mouvement fluide demande plus de 23 images/s Quid du chien et de la mouche au cinéma?

7 La vision: un cocktail de plusieurs ingrédients Sens chromatique Résolution Renouvellement des images Vision du relief, du mouvement

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

9 Couleurs 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

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

11 Couleurs 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

12

13 Le format image PPM (Portable PixMap): une é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

14 Exemple 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,iy write(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) enddo enddo close(1) end

15

16 Exemple d’écriture de fichier PPM: RVB avec R+V+B constant program demo integer, 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. enddo enddo ! ! Ecriture du fichier PPM. ! call img_ecr('demo3.ppm',ix,iy,irvb) end

17

18 Exemple de lecture / écriture de fichier PPM: filtrage program palette integer, allocatable :: irvb(:,:,:) real, allocatable :: zchamp(:,:) character*200 clppm1,clppm2 clppm1='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,ix irvb(3,jx,jy)=max(0,min(255,irvb(3,jx,jy)/3)) enddo enddo ! ! Ecriture du fichier PPM. ! call img_ecr(clppm2,ix,iy,irvb) end

19

20

21 Application au tracé de champs météorologiques 1.Colorisation de champs 2D 2.Saisie de palettes externes 3.Fondus et transparences

22 1. Colorisation de champs 2D program palette integer, 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

23 Subroutine palette_noir_vert_jaune_rouge(kx,ky,pchamp,krvb) Integer krvb(3,kx,ky) Real pchamp(kx,ky) Integer, parameter :: jppal = 4 Integer 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,kx zpassage= 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))) enddo enddo end

24

25 2. Exemple de saisie de palette externe

26 Exemple de saisie de palette externe

27 3. Epaisseur optique et gestion des transparences couleur

28 Epaisseur optique et gestion des transparences couleur aF

29 Epaisseur 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.

30 Fondu: transparence fonction de l’abscisse

31 Transparence fonction de la nébulosité

32

33

34

35 Passage PPM  autres formats: usage de convert GIFJPG TIFF PPM PS, EPS ETC!…

36 Conclusions 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...


Télécharger ppt "Vision des couleurs et création d’images Pascal Lamboley et Jean-Marcel Piriou."

Présentations similaires


Annonces Google