1 / 36

Vision des couleurs et création d’images

Vision des couleurs et création d’images. Pascal Lamboley et Jean-Marcel Piriou. 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?

efrem
Download Presentation

Vision des couleurs et création d’images

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 • Pigeons, insectes, mammifères non primates • Trichromie humaine et berceau africain • Daltonisme / Vision féminine • 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. 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

  13. 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,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

  14. Exemple d’écriture de fichier PPM: RVB avec R+V+B constant 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

  15. Exemple 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,ix irvb(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

  16. Application au tracé de champs météorologiques • Colorisation de champs 2D • Saisie de palettes externes • Fondus et transparences

  17. 1. 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

  18. 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 enddoend

  19. 2. Exemple de saisie de palette externe

  20. Exemple de saisie de palette externe

  21. 3. Epaisseur optique et gestion des transparences couleur

  22. Epaisseur optique et gestion des transparences couleur aF

  23. Epaisseur optique et gestion des transparences couleur • 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. • 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

  24. Fondu: transparence fonction de l’abscisse

  25. Transparence fonction de la nébulosité

  26. Transparence fonction de la nébulosité

  27. Transparence fonction de la nébulosité

  28. Transparence fonction de la nébulosité

  29. Passage PPM  autres formats: usage de convert GIF JPG PS, EPS TIFF ETC!… PPM

  30. Conclusions vision et base RVB • La vision colorimétrique humaine se ramène assez bien à trois degrés de liberté • Le format PPM permet de lire/écrire aisément des images via FORTRAN ou C • Convert permet de passer dans les deux sens de PPM aux autres formats GIF, JPG, TIFF, etc...

More Related