s.s.i.i. 2013-14, cours n°9 : du signal audio numérique à l'image numérique page 1 du...

20
Page Page 1 S.S.I.I. 2013-14, cours n°9 : Du signal audio S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique numérique à l'image numérique Du signal audio numérique à l'image numérique Cours S.S.I.I., séance 9, décembre 2013, durée : 55 mn, Jean-Paul Stromboni pour les élèves SI3 Objectif et contenu de cette séance : 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 ? • 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’ • Installer également le logiciel libre et gratuit IMLAB de traitement d’images utilisé ici

Upload: lula-germain

Post on 04-Apr-2015

121 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 11S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Du signal audio numérique à l'image numérique Cours S.S.I.I., séance 9, décembre 2013, durée : 55 mn,

Jean-Paul Stromboni pour les élèves SI3

Objectif et contenu de cette séance :

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 ?

• 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’

• Installer également le logiciel libre et gratuit IMLAB de traitement d’images utilisé ici

Page 2: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 22S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

La lumière est une onde électromagnétique

Lumière : ensemble d’ondes électromagnétiques visibles, dont les longueurs d’ondes sont comprises entre environ 400 nm et 700 nm

Se propage dans le vide avec la célérité c = 3 10^8 m/s environ Relation entre fréquence et longueur d’onde : = c / f Lumière monochromatique : contient une seule fréquence/longueur d’onde Tiré de http://www.techno-science.net, domaines de longueurs d’onde des

ondes électromagnétiques :

Page 3: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 33S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Synthèse additive de la lumière A une longueur d’onde donnée =c/f, correspond une couleur primaire (équivalent

de la note pure sinusoïdale pour le signal audio). On montre que la lumière « blanche » peut être obtenue en faisant la somme des

couleurs primaires (voir la roue de Newton, XVIIème siècle) Synthèse additive RVB: on peut aussi obtenir de la lumière blanche en additionnant

seulement 30% de lumière rouge, 60% de vert et 10% de bleu, c’est le principe de calcul de la luminance Y (cf. ci après).

Synthèse soustractive CMJ (utilisée en imprimerie), on soustrait les couleurs Cyan, Magenta et Jaune à la lumière blanche, on obtient du noir.

Tiré de http://semsci.u-strasbg.fr/primcol.htm

Page 4: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 44S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Luminance et chrominance L’œil est plus sensible à la luminance (noir et blanc, clair et sombre) qu’à la chrominance

(couleur), cf. ci-dessous tiré de http://semsci.u-strasbg.fr/efflum.htm

D’où le codage YUV (ou Y Cb Cr) des images TV à partir des informations R, G (vert) et B

R

B

CYRV

CYBU

BGRY

877.0

492.0

114.0587.0299.0

Y est la luminance, maximum de lisibilité pour l’œil humain,

CB et CR sont les chrominances bleue et rouge, pour reconstruire les informations de couleur

Page 5: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 55S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Du signal audio numérique à … l’image numérique

11

22/2

*)/(:

)*(

',/1

]1...0),([

[,0[),(

1

Q

BB

Q

e

ee

en

nnageéchantillo

s

Q

QQsfloorstionQuantifica

fDfloorN

nnageéchantillodfréquenceTf

NnnTsss

Dtts

x

y

0 L

H

y découpé en

M lignes

x découpé en N colonnes

Im(x,y)

s(t)

tD

10

22/1

*)/(:

:

)*(),*(

,/

,/

]1...0,1...0),,Im([

[,0[,[,0[),,Im(

Q

BB

Q

yx

y

x

mn

nnageéchantillo

I

Q

QQIfloorItionQuantifica

MNdéfinition

fHfloorXfLfloorX

verticalerésolutionHMf

ehorizontalrésolutionLNf

MmNnN

nL

M

mHII

HyLxyx

En résumé : la durée devient la distance, le temps devient espace, et une dimension devient deux.

Page 6: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 66S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Caractère numérique d’une image de niveaux de grisL'image suivante est tracée par Imlab qui affiche les pixels de la zone indiquée par le curseur : définition horizontale : 358 pixels, définition verticale : 587 pixels, 8 bits par pixel, soient 256 valeurs possibles, 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,7ko (87 809 octets)

Page 7: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 77S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Dans l’espace de couleurs ‘RGB’, une image couleur est la superposition de trois images de niveaux de gris : une rouge, une verte et une bleue :

Properties ‘joconde.jpg’ (Windows)

Largeur : 198 pixels

Hauteur : 300 pixels

Résolution : 30 ppp

Profond. couleur: 24

Taille 7,10Ko(7276o)

Im=imread(‘Joconde.jpg’); // avec Scilab et SIVPimshow(Im); // par contre pour afficher Pixel Region, utiliser IMLABsize(Im) // donne 300 par 198 par 3, pourquoi ?

Avec Imlab seulement, zoom sur « le sourire de Mona Lisa »

Page 8: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 88S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Séparer les trois images de niveau de gris R, G (vert) et B

g=rgb;

g(:,:,[1,3])=0;

imshow(g)

b=rgb;

b(:,:,[1,2])=0;

imshow(b)

// avec SIVP

// Afficher R, G et B

rgb=imread('Joconde.jpg');

r=rgb;

r(:,:,[2,3])=0; // ?

imshow(r)

imwrite(r,'jocr.jpg');

Avec Imlab,

menu Process,

puis Split components

Donne les trois images

ci-contre :

Page 9: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 99S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Extraire luminance et chrominances avec Imlab

On voit que Y la luminance à gauche, contient plus d’information que Cr et Cb : la fonction Scilab rgb2gray calcule Y pour transformer l’image couleur en niveaux de gris on sous-échantillonne les plans U et V dans un rapport 2 pour compresser l’image

R

B

CYRV

CYBU

BGRY

877.0

492.0

114.0587.0299.0

À l’aide de IMLAB, menu Image/Color space, choisir YCrCb, puis menu Process, choisir Split components,

et voici Y, Cr et Cb pour ‘joconde.jpg’

Page 10: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 1010S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Calculer luminance et chrominance et sous échantillonner une image avec Scilab

// sauver l’image dans Im

Im=imread('joconde.jpg');

// calculer Y, Cr, et Cb

YCrCb=rgb2ycbcr(Im);

Cr=YCrCb(:,:,1);

Y=YCrCb(:,:,2);

Cb=YCrCb(:,:,3);

// afficher Cr

imshow(Cr)

[l,c]=size(Cr)

//sous échantillonner Cr

//dans un rapport 4

Cr4=Cr(1:2:l,1:2:c);

imshow(Cr4)

Page 11: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 1111S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Histogramme d’image, médiane, écart type et contraste.

lena=imread('lena.png'); imshow(lena) lenay=rgb2gray(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 129. 255.0.

Page 12: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 1212S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Pour varier le contraste, on multiplie l’écart type à médiane constante

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=uint8(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

129. 255.0.

Page 13: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 1313S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Comment filtrer une image numérique :

Comme pour le signal audio, on peut créer des filtres numériques pour les images : Un filtre passe haut amplifie les hautes fréquences spatiales (discontinuités, contours,

bruits Un filtre passe bas favorise les basse fréquences spatiales, atténue les contours, les

discontinuités spatiales, les bruits, mais crée du flou.

On procède par produit de convolution à deux dimensions: Soit h, de 2*R+1 lignes et 2*R+1 colonnes, réponse impulsionnelle du filtre d’image, ou

masque ou encore noyau de ce filtre Soit Im image à filtrer dans un tableau de X lignes et Y colonnes On calcule le pixel filtré F(i, j) (i varie de 1 à X, j varie de 1 à Y) en faisant le produit de

convolution de Im par h :

Noter la division par N, taille du noyau h. dans SIVP, la fonction ‘imfilter’ calcule ce produit de convolution :

F= imfilter(Im, h);

2)12(,/),Im(),(),(

RNNnjminmhjiF

Rm

Rm

Rn

Rn

Page 14: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 1414S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Application au filtrage d’une image N x M par un filtre 3 x 3 en Scilab

L’image à filtrer est dans le vecteur Scilab I =[I(i, j), i=1..M, j=1.. N] Le noyau h du filtre est h=[h(m, n), m=1,2,3 et n=1,2,3] L’image filtrée est F=[F(i,j), i=1..M, j= 1.. N] On calcule le pixel F(i,j) de l’image filtrée comme suit :

F(i,j)=I(i,j)*h(2,2)+ I(i, j+1)*h(2,1)+ I(i, j-1)*h(2,3)+ I(i+1,j)*h(1,2)+ I(i+1, j+1)*h(1,1)+ I(i+1, j-1)*h(1,3)+ I(i-1,j)*h(3,2)+ I(i-1, j+1)*h(3,1)+ I(i-1, j-1)*h(3,3)

On divise ensuite F(i,j) par la taille du noyau h :F(i, j)= F(i, j)/9

On impose F(i, j) = 0 quand i=0, j=0, i=M et j=N

Voici l’équation du filtre :

Généralisation pour un filtre de noyau 2*R+1 par 2*R+1

0),()1,(),(),1(

1..2,1..2,9/)2,2(),(),(3

1

3

1

NiFiFjMFjF

NjMimjniImnhjiFn m

0),()1,(),(),1(

1..2,1..2,)12/()2,2(),(),( 212

1

12

1

NiFiFjMFjF

NjMiRmjniImnhjiFR

n

R

m

Page 15: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 1515S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Exemples de filtrage de l’image lena par un laplacien (dérivée seconde)

// filtrer l'image lena//filtre laplacien lena=imread('lena.png'); h = fspecial('laplacian');imf = imfilter(lena,h); imshow(imf);

1667.0667.01667.0

667.0333.3667.0

1667.0667.01667.0

h

Page 16: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 1616S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, 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

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.

Détecter les contours, c’est situer les zones de l’image où l’intensité varie « brusquement » : 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

1),(0

,0,,0

yxI

HyLx

x

y

0

I(x,y)

y

x

I

I

y

Ix

I

Igrad )(

?)( SeuilIgrad

Page 17: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 1717S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Déterminer un filtre qui calculera les dérivées partielles Ix et Iy

Réponse impulsionnelle de ce filtre :

1),,(),1(),(

),(),(lim 0

psiyxIyxIyxI

p

yxIypxI

x

I

x

p

)1,1( h

Application de h à : )0,10,10,10,0,0(),( 0 baI),( 0 baF

Filtre différenciateur centré : )1,0,1( h

Donner l’équation du filtre : ),( 0 baF

Filtres de Prewitt : h = fspecial('prewitt'); // donne dans h

111

000

111

h ?'

h

Page 18: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 1818S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Application : on filtre l’image de niveaux de gris avec h puis h’

// Scilab SIVP image='joconde.jpg';

im = imread(image); imd=im2double(im);

img = rgb2gray(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’);

Page 19: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 1919S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

Puis on somme imfx et imfy pour évaluer le module du gradient et on lui applique un seuillage pour déterminer le contour :

// sans seuilimcontour=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’)

Page 20: S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique Page 1 Du signal audio numérique à l'image numérique Cours S.S.I.I., séance

Page Page 2020S.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numériqueS.S.I.I. 2013-14, cours n°9 : Du signal audio numérique à l'image numérique

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 2A cases contenant chacune une intensité codée sur B bits, avec 2B>2A (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=ind2rgb(b,cmap);

imshow(c);

size(cmap) 64 3

La matrice cmap est constituée de trois colonnes R, V et B où il est permis de constituer sa propre colormap ou de choisir pinkcolormap ou …

Taux de compression ici ?

L’image c est quatre fois plus petite que b, pourquoi ?