Du signal audio numrique limage numrique Cours S
- Slides: 20
Du signal audio numérique à l'image numérique Cours S. S. I. I. , SI 3, cours 9, décembre 2015, durée : 55 mn, Jean-Paul Stromboni Objectif et contenu de cette séance : • Objectif : étendre aux images numériques les notions introduites pour le signal audio numérique : échantillonnage, quantification, filtrage, et plus tard spectre et compression • Contenu : on voit les notions de résolution, d’image de niveaux de gris, de codage RGB et YUV, de colormap, de filtre d’image, le problème de détection de contours … avec Scilab. Outils : installer la boîte à outils SIVP dans Scilab • Pour installer SIVP, dans Scilab, aller dans le menu ‘Applications’ puis dans le menu ‘Gestionnaire de Modules’, et installer ‘Scilab Image and Video Processing’ depuis Scilab • Installer également le logiciel libre et gratuit IMLAB Savez vous répondre aux questions suivantes ? Que signifie résolution de 30 ppp d’une image ? En quoi une image de niveau de gris diffère-t’elle d’une image RVB ? Comment distinguer une image en noir et blanc et une image en niveaux de gris ? Donner la réponse impulsionnelle ou masque, ou noyau, du filtre de Prewitt horizontal Combien de pixels sur 10 cm en résolution 30 dpi ? Une table de 256 couleurs codées sur 8 bits occupe combien d’octets ? S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 1
Caractère numérique d’une image de niveaux de gris L'image suivante est affichée par Imlab avec à droite les pixels de la zone indiquée par le curseur : définition horizontale : N=358 pixels, définition verticale : M=587 pixels, B=8 bits par pixel, 256 valeurs d’intensité possibles, niveaux de gris de 0 pour un pixel noir à 255 pour un pixel blanc. Propriétés de ‘moon. png’ : Largeur : 358 pixels Hauteur : 537 pixels Profondeur couleur: 8 Taille: 85, 7 ko (87 809 octets) S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 2
Du signal audio numérique à … l’image numérique En résumé : la durée devient la distance, le temps devient espace, et une dimension devient deux. H Im(x, y) D t y découpé en M lignes s(t) y x 0 x découpé en N colonnes S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique L Page 3
Une image couleur RGB est la superposition de trois images de niveaux de gris : une rouge R, une verte G et une bleue B: Im=imread(‘Joconde. jpg’); // avec Scilab et SIVP imshow(Im); // par contre pour afficher Pixel Region, utiliser IMLAB size(Im) // donne 300 par 198 par 3, pourquoi ? Avec Imlab, des pixels du « sourire de Mona Lisa » Properties de ‘joconde. jpg’ (Windows) Largeur : 198 pixels Hauteur : 300 pixels Résolution : 30 ppp Profond. couleur: 24 Taille 7, 10 Ko(7276 o) S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 4
Séparer les trois images de niveau de gris R, G (vert) et B Avec Imlab: menu Process, puis Split components, donne les trois images R, G et B : // avec SIVP // Afficher R, G et B rgb=imread('Joconde. jpg'); r=rgb; r(: , [2, 3])=0; // ? imshow(r) imwrite(r, 'jocr. jpg'); g=rgb; g(: , [1, 3])=0; imshow(g) b=rgb; b(: , [1, 2])=0; imshow(b) S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 5
Extraire luminance Y et chrominances CB et CR avec Imlab À l’aide de IMLAB, menu Image/Color space, choisir YCr. Cb, puis menu Process, choisir Split components, et voici Y, Cr et Cb pour ‘joconde. jpg’ q la luminance Y à gauche, contient plus d’information que les chrominances Cr et Cb : q on sous-échantillonne les plans U et V dans un rapport 2 pour compresser l’image q ** rgb 2 gray() qui calcule Y transforme une image couleur en image de niveaux de gris S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 6
Avec Scilab, calculer Y, Cr et Cb et sous-échantillonner Cr // sauver l’image dans Im Im=imread('joconde. jpg'); // calculer Y, Cr, et Cb YCr. Cb=rgb 2 ycbcr(Im); Cr=YCr. Cb(: , 1); Y=YCr. Cb(: , 2); Cb=YCr. Cb(: , 3); // afficher Cr imshow(Cr) [l, c]=size(Cr) //sous échantillonner Cr //dans un rapport 4 Cr 4=Cr(1: 2: l, 1: 2: c); Cb 4=Cb(1: 2: l, 1: 2: c); imshow(Cr 4) Taux de l’image compression de Cr ? compression de Cb ? compression de RGB ? S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 7
L’œil différencie 2 millions de couleurs, 24 bits en créent plus de 16. 7 millions, utiliser une table de couleurs (colormap ) est un moyen de compresser une image Une colormap est un tableau de 2 A cases contenant chacune intensité codée sur B bits, avec 2 B>2 A (par exemple 256 couleurs codées chacune sur 24 bits). Chaque pixel contient alors un index, adresse sur A bits de la case de la colormap où lire la couleur du pixel. Il en résulte un taux de compression : C = B/A. Scilab contient des colormaps, telles que pinkcolormap, et permet d’en définir de nouvelles : b=imread('moon. png'); cmap=pinkcolormap(64); c=ind 2 rgb(b, cmap); imshow(c); size(cmap) 64 3 La matrice cmap est constituée de trois colonnes R, G et B où il est permis de constituer sa propre colormap ou de choisir pinkcolormap ou … R G B r 1 g 1 b 1 r 2 g 2 b 2 … … … r 64 g 64 b 64 Taux de compression ici ? L’image c est quatre fois plus petite que b, pourquoi ? S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 8
Histogramme d’une image: décaler l’intensité médiane lena=imread('lena. png'); imshow(lena) lenay=rgb 2 gray(lena); imshow(lenay) scf(2); bar(imhist(lenay), 1, 'green'); // foncer lenay imshow(imsubtract(lenay, 40)) // imadd pour éclaircir // lenay doit être réelle median(double(lenay)) stdev(double(lenay)) //mediane de lenay: 129. //stdev de lenay: 47. 85 0. 129. S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique 255. Page 9
Histogramme d’image : écart type d’intensité et contraste function Z= contraste(X, t) n=size(X, 1); p= size(X, 2); Z=double(X); b=median(Z); M(1: n, 1: p)=b; Z=M+ t*(Z-M); M(: )= 255; Z=min(Z, M); M(: )= 0; Z=max(Z, M); Z=uint 8(Z); endfunction lenayc=contraste(double(lenay), 1. 5); imshow(lenayc) bar(imhist(lenayc), 1, 'green'); median(double(lenayc)) stdev(double(lenayc)) // mediane lenayc: 129. // stdev lenayc: 83. 79 0. 129. S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique 255. Page 10
Fréquence spatiale horizontale • • • i(x)= 0. 5+ 0. 5*cos(2*%pi*f*x) x varie de 0 à L Définition : N pixels entre 0 et L Période échantillonnage : L/N Résolution horizontale: fx = N/L Pixellisation : x= k*L/N, k= 0 … N-1 ik= 0. 5*(1+cos(2*%pi*f*k*L/N) Normalisation de fe : L/N= 1 fx=1 pixel par unité de longueur x= 0. . N-1 ik=0. 5*(1+cos(2*%pi*f*x) S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 11
Filtres d’images numériques : q Comme pour le signal audio, on peut filtrer une image numérique, par produit de convolution bidimensionnel : Ø Un filtre passe haut amplifie les hautes fréquences spatiales (détection des contours) Ø Un filtre passe bas favorise les basse fréquences spatiales, atténue les bruits, contours, les discontinuités spatiales, mais crée des zones de flou. q Imf= Im * h Ø Où Im est l’image M x N pixels à filtrer, Ø Imf est l’image des M x N pixels filtrés, Ø h est la réponse impulsionnelle du filtre, une matrice de dimensions R x R q Calcul du pixel Imf(i, j) de l’image filtrée : Ø i varie de 0 à M-1, j de 0 à N-1 Ø Im(k, l) est pris égal à zéro quand k= i-m+R-1 est négatif, ou quand l= j-n+R-1 <0 Ø Imf(i, j) est la somme de R 2 termes non nuls impliquant le pixel Im(i, j) et ses voisins S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 12
Exemple de mise en œuvre du produit de convolution 3 x 3 q Soit h ci-dessous, matrice 3 x 3, et réponse impulsionnelle du filtre q Soit s. I, sous matrice 3 x 3 de Im centrée sur le pixel à filtrer pc q Le pixel filtré vaut q Application : relever pc et calculer le pixel filtré dans le cas suivant pc= 1 p= -3 p= 0 q Avec Scilab, faire Ø h= [1, 1, 1; 0, 0, 0; -1, -1]; Ø Imf = imfilter(Im, h); Ø Imf 2 = imfilter(Im, h’); S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 13
Filtrage de l’image ‘lena. png’, filtre laplacien (dérivée seconde) // filtrer l'image lena //filtre laplacien lena=imread('lena. png'); h = fspecial('laplacian'); imf = imfilter(lena, h); imshow(imf); h S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 14
Détection de contours avec le filtre de Prewitt et son transposé // Scilab SIVP image='joconde. jpg'; im = imread(image); imd=im 2 double(im); img = rgb 2 gray(imd); imshow(img) // avec Scilab et SIVP h= fspecial(‘prewitt’) imfx = imfilter(img, h'); aimfx=imcomplement(abs(imfx)); imwrite(aimfx, ’aimfx. png’); // avec Scilab et SIVP imfy = imfilter(img, h); aimfy=imcomplement(abs(imfy)); imwrite(aimfx, ’aimfy. png’); S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 15
On somme imfx et imfy et on applique un seuil pour déterminer les contours // sans seuil imcontour=abs(imfx)+abs(imfy); imwrite(imcontour), '. /c. png'); // seuil ‘bas’ seuil=0. 3; imc=imcontour; imc(imc<seuil)=0; imc(imc>0)=0. 9; imc=imcomplement(imc); imwrite(imc, ’. /imc. png’) // seuil croît seuil=0. 5; imc=imcontour; imc(imc<seuil)=0; imc(imc>0)=0. 9; imc=imcomplement(imc); imwrite(imc, ’. /imc. png’) S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 16
Capteurs biologiques : cellules de la rétine q Les bâtonnets (vision de nuit) sont sensibles à la luminosité et pas à la couleur, il y en a 120 millions sur la rétine, ils ont un maximum de sensibilité vers le bleu , c’està-dire l = 500 nm environ q Les cônes sur la fovea, petite zone de la rétine, sont 7 millions par œil, il y a Ø Les cônes verts, capturent plutôt les photons verts, maximum vers l = Ø Les cônes rouges, capturent les photons rouges, maximum vers l = Ø Les cônes bleus capturent les photons bleus, maximum vers l = q D’après la courbe ci-dessous : Ø L’œil humain est plus sensible à la luminosité qu’à la couleur Ø Les cônes verts sont plus sensibles que les rouges plus sensibles que les bleus (cf. Wikipédia) S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 17
R, G, B Yn, Cb, Cr (ou YUV) un autre moyen de compresser q Comment transformer une image couleur à afficher sur un téléviseur noir et blanc, sans perdre l’information sur les couleurs R, G et B ? Ø On calcule la luminance Y ainsi que les chrominances Cb et Cr : Ø Y est la luminance de l’image couleur, information sur la luminosité de l’image Ø Cb est la chrominance bleue, information sur la couleur bleue dans l’image Ø Cr est la chrominance rouge q Y, Cr, et Cb permettent de reconstituer R, G et B, c’est-à-dire l’image couleur q Mais comme l’œil perçoit le vert comme plus lumineux que le rouge, lui-même plus lumineux que le bleu, on peut sous échantillonner les plans Cr et Cb pour compresser l’image, c’est la première phase du codec jpeg Ø Si on sous échantillonne dans un rapport 2 horizontalement et verticalement Cr et Cb, on a : R, G, B Y, Cr, Cb Y, Cr/4, Cb/4 taux de compression = 2 ( pourquoi ? ) S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique
Une application au problème de détection des contours d’une image q I(x, y) ci contre est le niveau de gris d’une photographie, x et y peuvent prendre toutes les valeurs entre 0 et L pour x, 0 et H pour y. q Détecter les contours, c’est situer les zones de l’image où l’intensité varie « brusquement » : y I(x, y) x 0 Ø On calcule le gradient de I(x, y) ü La dérivée partielle horizontale ü La dérivée partielle verticale Ø On évalue le module et l’argument du vecteur gradient : ü Le module mesure l’importance de la variation d’intensité ü L’argument indique la normale du contour Ø On compare le module du gradient à un seuil paramétrable pour distinguer Ø Le filtre de Prewitt est un moyen de calculer ce gradient : h = fspecial('prewitt'); //gradient vertical h’ // transposée de h, gradient horizontal S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 19
Lumière, lumière visible, lumière blanche q Lumière monochromatique : Ø onde électromagnétique de longueur d’onde l = c / f , f est la fréquence de l’onde, et c la vitesse (ou célérité) de la lumière Ø Flux de particules (photons) en mouvement rectiligne uniforme de vitesse c q Lumière visible ( à l’œil humain) : Ø Pour l compris entre environ 400 nm et 700 nm (1 nm = 10 -9 m= 1000 mm) Ø À chaque l, correspond une couleur primaire, ainsi par exemple : violet : l= 380 nm, indigo: 450 nm, bleu : 500 nm, vert : 570 nm, jaune 590 nm, rouge 680 nm q Lumière polychromatique : composée de couleurs primaires (notion de spectre) Ø Lumière blanche : ü composée de toutes les couleurs primaires (cf. disque de Newton) ü Reconstitution sur un écran : 30% de rouge+ 60% de vert et 10% de bleu (cf. http: //www. techno-science. net) S. S. I. I. 2015 -16, SI 3, cours n° 9 : Du signal audio numérique à l'image numérique Page 20
- Toutankhaton
- Audio numérique cours
- Even odd signals
- Baseband signal and bandpass signal
- Baseband signal and bandpass signal
- Digital signal as a composite analog signal
- Malaxeur habilis
- La tectonique des plaques - cours
- Commentaire jsp
- Cours présentation assistée par ordinateur
- Gestion internationale des ressources humaines cours
- Cours dynatrace
- Cours sainte marie de hann piscine
- Au cours de la semaine prochaine
- Lignes de transmission cours
- Trnsys simulation studio
- Cours hydrogéologie master
- Zonecours hec
- Tableau perte de charge pompier cod 1
- Intégrale impropre cours
- Cours turbomachine