Quantification de l’image
I. Objectifs
L’objectif de ce TP est de pratiquer le concept de la quantification scalaire sur un signal numérique
bidimensionnel (l’image). Pour cela, le travail à réaliser est divisé en trois parties: la première partie
concerne l’acquisition et la représentation sous format numérique d’une image, la deuxième partie
s’intéresse à la quantification scalaire d’une image et à l’étude de son effet visuel et quantitatif sur
la qualité de l’image obtenue. La dernière partie est réservée à l’application du concept de la
quantification pour réaliser une application spécifique. Dans ce TP, il s’agit du comptage de nombre
de pièces de monnaies dans une image.
Les images vraies couleurs sont, quant à elles, des signaux vectoriels où chaque pixel est décrit par
au moins 3 intensités (amplitudes). Il s’agit d’un vecteur de 3 composantes traduisant la
composition de n’importe quelle couleur selon les trois couleurs de base qui sont le Rouge, le Vert
et le Bleu. Chaque pixel de chaque couleur est codé sur 8 bits.
Dans ce qui suit, vous allez manipuler ces différents formats des images.
Durant ce TP, nous nous intéressons à la quantification scalaire uniforme. Un pixel de l’image
I(x,y) prend ses valeurs dans l'intervalle [0, 255]. Pour réaliser un quantificateur uniforme à N
niveaux, il suffit de partitionner l'intervalle [0, 255] en N intervalles distincts de même largeur
Delta =256/N et de définir le représentant de l'intervalle, par exemple, son milieu.
Prenons par exemple le cas où le nombre de niveaux de quantification est N=8. Ceci correspond
à une représentation binaire sur 3 bits. Le pas de quantification est Delta=256/8. L’intervalle
[0 255] est partitionné en 8 intervalles dont les bornes sont successivement 0, 32, 64, 96,
128,160, 192, 224, 255. Les extrêmes 0 et 255 ne sont pas retenus dans le vecteur
PARTITION=[32, 64, 96, 128,160, 192, 224]. Chaque pixel d’un intervalle (les intervalles sont
[0, 31], [32 63], [64 95], [96 127], [128 159], [160 191], [192 223], [224 255]) est remplacé par
une seule valeur qui est le milieu de l’intervalle. On crée alors, ce qu’on appelle le dictionnaire
ou CODEBOOK=[16, 48,80,112,144,176,208,240]. Cette partition et ce dictionnaire sont
illustrés dans la figure 2.
Pour quantifier une image avec MATLAB, on utilise la fonction imquantize suivante :
function [q,qindex]=imquantize(x,L)
% image quantization
xmax=max(x(:));
xmin=min(x(:));
range=xmax-xmin;
scale=double(L-1)/double(range);
qindex=round(x*scale);
q=qindex*round(range/L)+round(range/(2*L));
return
Remarque : les calculs se font sur le format « double ». L’affichage des images se fait à partir du
format « uint8 »
Où 2 est la variance sur l’image que vous pouvez calculer avec la commande MATLAB
var.
Nombre de bits de 7 6 5 4 3 2 1
quantification par pixel
RSB
1. Réaliser une quantification sur 1 bit l’image des pièces de monnaies pour générer une
image binaire (ImBin).
2. Utiliser la commande MATLAB imhist pour afficher l’histogramme de l’image.
On rappelle que l’histogramme est une fonction ayant en abscisse les différents niveaux
de gris (0 à 255) et en ordonné l’occurrence de chacune de ces niveaux de gris sur
l’image.
3. Remarquer qu’il y’a deux plages de valeurs. Ainsi, vous pouvez choisir le seuil adéquat
permettant de séparer ces deux plages. L’une correspond aux intensités de l’arrière plan
tandis que la 2ème est relative aux pièces des monnaies.
4. En utilisant le programme suivant (CompteurMonnaie), vérifier que vous avez bien le
nombre de pièces exact sur l’image :
L = bwlabel(ImBin);
stats = regionprops(L,'Area','Centroid');
% Comptage des pièces de monnaies en utilisant la taille des objets
figure, imshow(ImBin)
hold on
count = 0;
seuil=200; % par exemple
for i = 1:length(stats)
if stats(i).Area > seuil
plot(stats(i).Centroid(1), stats(i).Centroid(2),'*')
count = count+1;
end
end
title(['Il y a ' num2str(count) ' pièces de monnaies dans cette
image.'])
5. Essayer de faire votre propre acquisition avec des pièces de monnaies. Faites le avec
des pièces de monnaies sur un fond uni (la table par exemple). Choisir le seuil
adéquat dans le cas de votre image afin de pouvoir comptabiliser le nombre des
pièces des monnaies.
TP 4
Analyse de Fourier sur un signal DTMF
I. Objectif
L’objectif du TP est de consolider les connaissances acquises sur la Transformée de Fourier à
travers une application. Celle-ci concerne l’identification des touches d’un clavier numérique par
analyse du son généré. En effet, les appareils de téléphonie fixe ou mobile sont munis d’un clavier.
Lorsqu’une touche est appuyée, un son est émis. Par analyse dans le domaine de Fourier, il est
possible de reconnaitre la touche appuyée par simple analyse du son généré.
Le réseau téléphonique est conçu pour transporter des signaux vocaux. Néanmoins, il est souvent
demandé de transporter d'autres types de signaux. Un exemple simple et omniprésent est le numéro
téléphonique appelé. En effet, la ligne téléphonique utilisée doit communiquer avec le bureau
central de la compagnie de téléphone pour que le numéro de téléphone appelé soit transmis.
L’appareil téléphonique doit être capable de convertir les séquences de chiffres appuyées en
signaux qui peuvent facilement traverser les circuits conçus pour transmettre la voix.
Ainsi, les dix chiffres décimaux enrichis des symboles ‘*’ et ‘#’ doivent être convertis en sons qui
ont les mêmes caractéristiques que la voix.
Lorsqu’une touche du clavier téléphonique est appuyée, un signal de signalisation est transmis et est
aussi jouée. Ce signal est une superposition de deux sinusoïdes dont les fréquences sont associées à
la touche appuyée.
La figure 1 illustre un clavier téléphonique et les fréquences associées. Ainsi, un clavier peut être vu
comme une matrice de fréquences. Chaque touche est décrite par sa position en ligne et sa position
en colonne. Le couple de fréquence obtenu est le représentant unique de la touche.
Figure 1 : touches d’un clavier téléphonique et fréquences associées.
Le fichier ‘signal.mat’ est un exemple de signaux de signalisation enregistré lorsqu’une touche d’un
clavier téléphonique est appuyée.
Il a été échantillonné à la fréquence fs=8192 Hz.
Vérifier le signal obtenu par visualisation des allures temporelle et spectrale et par tests d’écoute.