Travaux pratiques de traitement d image ECHANTILLONNAGE

Documents pareils
Systèmes de transmission

Echantillonnage Non uniforme

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Technique de codage des formes d'ondes

5.2 Théorème/Transformée de Fourier a) Théorème

Régler les paramètres de mesure en choisissant un intervalle de mesure 10µs et 200 mesures.

Chapitre I La fonction transmission

Intérêt du découpage en sous-bandes pour l analyse spectrale

Traitement du signal avec Scilab : transmission numérique en bande de base

CHAPITRE V. Théorie de l échantillonnage et de la quantification

LABO 5 ET 6 TRAITEMENT DE SIGNAL SOUS SIMULINK

Projet audio. Analyse des Signaux ELE2700

Transmission d informations sur le réseau électrique

Chaine de transmission

TP SIN Traitement d image

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

Projet Matlab/Octave : segmentation d'un ballon de couleur dans une image couleur et insertion d'un logo

8563A. SPECTRUM ANALYZER 9 khz GHz ANALYSEUR DE SPECTRE

Filtres passe-bas. On utilise les filtres passe-bas pour réduire l amplitude des composantes de fréquences supérieures à la celle de la coupure.

Programmation linéaire


J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

Formation > Développement > Internet > Réseaux > Matériel > Maintenance

- Instrumentation numérique -

TD1 Signaux, énergie et puissance, signaux aléatoires

Cours Informatique Master STEP

LA COUCHE PHYSIQUE EST LA COUCHE par laquelle l information est effectivemnt transmise.

LES CARACTERISTIQUES DES SUPPORTS DE TRANSMISSION

Les Utilisateurs dans SharePoint

P1PY7204 Acquisition de données Cours

Automatique Linéaire 1 Travaux Dirigés 1A ISMIN

Par Richard Beauregard. Novembre 2011

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Montage non-linéaire. Techniques et méthodes

LABO PROJET : IMPLEMENTATION D UN MODEM ADSL SOUS MATLAB

Présentation du PL/SQL

1. Présentation général de l architecture XDSL :

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES

Fête de la science Initiation au traitement des images

Dan Istrate. Directeur de thèse : Eric Castelli Co-Directeur : Laurent Besacier

Géométrie discrète Chapitre V

Traitement du signal avec Scilab : la transformée de Fourier discrète

Notions d asservissements et de Régulations

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Traitement d un AVI avec Iris

Chapitre 3. Les distributions à deux variables

Projet de Traitement du Signal Segmentation d images SAR

Telecommunication modulation numérique

FAG Detector III la solution pour la surveillance et l équilibrage. Information Technique Produit

EMETTEUR ULB. Architectures & circuits. Ecole ULB GDRO ESISAR - Valence 23-27/10/2006. David MARCHALAND STMicroelectronics 26/10/2006

Analyse des Systèmes Asservis

Étude des Corrélations entre Paramètres Statiques et Dynamiques des Convertisseurs Analogique-Numérique en vue d optimiser leur Flot de Test

Théorie et codage de l information

Numérisation du signal

SIGNAUX NUMERIQUES ET MODULATIONS NUMERIQUES

Systèmes de communications numériques 2

Information. BASES LITTERAIRES Etre capable de répondre à une question du type «la valeur trouvée respecte t-elle le cahier des charges?

Calcul Formel et Numérique, Partie I

PHOTOSHOP - L'AFFICHAGE

Telecommunication modulation numérique

I. TRANSMISSION DE DONNEES

Equipement. électronique

Recherche De Coalescences Binaires Étalonnage Du Détecteur

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Calculateur quantique: factorisation des entiers

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

INTRODUCTION GENERALE...1 LA CONNEXION ODBC :...1. CONNEXION AU TRAVERS D EXCEL(tm)...6. LOGICIEL QUANTUM GIS (Qgis)... 10

Transmission des signaux numériques

SUJET ZÉRO Epreuve d'informatique et modélisation de systèmes physiques

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Expérience 3 Formats de signalisation binaire

LEÇON N 7 : Schéma de Bernoulli et loi binomiale. Exemples.

Connaissances VDI 1 : Chapitres annexe

1. PRESENTATION DU PROJET

Choisir entre le détourage plume et le détourage par les couches.

Résolution de systèmes linéaires par des méthodes directes

Traitement bas-niveau

Opérations de base sur ImageJ

3.2. Matlab/Simulink Généralités

Utilisation du logiciel ImageJ gratuit

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exemple d acquisition automatique de mesures sur une maquette de contrôle actif de vibrations

Reaper : utilisations avancées

Utilisation du visualiseur Avermedia

TP : Gestion d une image au format PGM

Projet Matlab : un logiciel de cryptage

Création d'un site neutre et présentation des éléments de la page d'accueil

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Le concept cellulaire

Electron S.R.L. - MERLINO - MILAN ITALIE Tel ( ) Fax Web electron@electron.it

NOTE D'APPLICATION CONCERNANT LA MISE EN SERVICE DE MATERIELS SUR RESEAU IP

LibreOffice Calc : introduction aux tableaux croisés dynamiques

Transcription:

ECHANTILLONNAGE 1 Objectif de ce travail : Le travail proposé ici consiste à manipuler des images pour observer le résultat de l'étape d'échantillonnage. 2 Petite histoire : Harry NYQUIST & Claude Elwood SHANNON Harry Nyquist Né le 7 février 1889 à Nilsby (Suède) mort le 4 avril 1976.à Harlingen (Texas) Il émigra vers les Etats-Unis en 1907 et entra à l'université du Dakota du nord en 1912. Cinq ans plus tard, il fut reçu comme docteur en physique à l'université de Yale Après avoir travaillé de 1917 à 1934 chez AT&T, il partit pour les laboratoires Bell. Aux Bell Labs, il fit des recherches sur le bruit thermique appelé également «bruit de Johnson-Nyquist» et sur la stabilité des amplificateurs bouclés (Diagramme de Nyquist). Ses travaux théoriques sur la détermination de la bande passante nécessaire à la transmission d'information, publiés dans l'article «Certain factors affecting telegraph speed» posent les bases pour les recherches de Claude Shannon qui amèneront la théorie de l'information. En 1927 Nyquist détermine qu'un signal analogique doit être échantillonné à au moins deux fois la plus haute fréquence qui le constitue si l'on veut le convertir en un signal numérique. Ce résultat, connu sous le nom de théorème d'échantillonnage de Nyquist-Shannon, a été publié dans l'article «Certain topics in Telegraph Transmission Theory» en 1928 (voir la publication en fin de fichier). Harry Nyquist a eu un rôle important dans la théorie de l'information et de l'automatique. Référence Site web de : http://www.britannica.com/eb/article-9125110/harry-nyquist http://fr.wikipedia.org/wiki/harry_nyquist Claude Elwood SHANNON : Né le 30 avril 1916 à Gaylord (Michigan) mort le 26 février 2001. 1

Référence Site web de : http://www.bell-labs.com/news/2001/february/26/1.html http://www.nyu.edu/pages/linguistics/courses/v610003/shan.html 3. MANIPULATIONS : 3.1. Échantillonnage : Dans cette première partie, on vous propose de revoir rapidement quelles sont les règles d'échantillonnage d'un signal. Reprenez le TP «Transformée de Fourier», et utilisez la question «3.3. Animez votre Transformée de Fourier 2D!» pour générer une image comportant une sinusoïde, faites augmenter la fréquence de cette sinusoïde d'une valeur nulle à 2.F ech. Que se passe-til dans le plan de Fourier? % Génération d'un Cosinus 2D clear all; Tox=512; Toy=512; while(tox>1) for i=1:256 for j=1:256 mon_cos(i,j)=double(128*(1+cos(2*pi*(i/tox+j/toy)))); figure (1); image(mon_cos); drawnow; colormap(pink(256)); axis('image'); figure (2); imagesc(log10(abs(fftshift(fft2(mon_cos))))); colormap(gray); axis('image'); Tox=Tox/1.05; Toy=Toy/1.05; 3.2. Échantillonnage d'une image réelle : Maintenant, ouvrez l'image «Echantillonnage.bmp» MonImage=imread('Echantillonnage.bmp'); L image qui vous est proposée, est codées sur 8 bits. Pour certaines opérations, il est 2

important de noter que le résultat obtenu est plus précis, voire très différents, si les calculs sont réalisés sur des valeurs réelles. Pour convertir l image en «flottant» : MonImage = double(monimage) ; L image en niveau de gris est formée de Nlin lignes, Ncol colonnes et 1 seul plan. Ces informations sont récupérables facilement grâce à : [Nlin, Ncol] = size(monimage) ; Pour afficher l'image : figure(1); image(monimage); axis('image'); colormap(gray(256)); Vous pouvez calculer la FFT de l'image : Freq_MonImage = fft2(monimage); Rappel : votre image est un signal 2D réel et sa fft est complexe (la fonction abs() donne le module). Échantillonnez cette image en prélevant : 1 point sur 2 1 point sur 3 1 point sur 4 Expliquez le résultat (regarder aussi les spectres). Attention : agrandissez les fenêtres qui contiennent les images pour qu'elles occupent tout l'écran. 3.3. Interpolation (effet de zoom) : L'objectif de cette partie du TP est d'essayer de réaliser un agrandissement de l'image d'origine ('Echantillonnage.bmp'). Pour cela vous essayerez de réaliser une interpolation linéaire, puis par une fonction polynomiale (cubique). 3.3.1. Principe : Le principe est assez simple. Si l'on considère que l'image qui vous est donnée respecte le théorème de Nyquist-Shannon : On reconstruit la fonction continue (objet d'origine) qui par échantillonnage a permis d'obtenir l'image dont vous disposez. Cette fonction continue est alors filtrée pour obtenir un spectre compatible avec l'échantillonnage que l'on souhaite réaliser (limitation du spectre pour éviter le repliement de spectre au cours de l'échantillonnage). 3

Pour terminer, on échantillonne l'image «continue filtrée» aux points que l'on veut calculer pour la nouvelle image. Dans la pratique, la solution consiste à combiner la reconstruction et le filtrage en une seule étape, mais aussi pour améliorer le temps de calcul, à remplacer la fonction sinus cardinal, classiquement utilisée pour la reconstruction, par une forme polynomiale (une somme finie de termes remplace alors une somme infinie dans le cas du sinus cardinal). Image_reconstituée(i,j)=Image_échantillonnée(i,j) h(i,j) (1) h(i,j) est la fonction choisie pour la reconstitution. Classiquement h(i,j) = sin c (i,j), car cette fonction correspond à une fonction porte dans l'espace des fréquences H(u,v)=rect(u,v). Remarque : rect(u,v) est la fonction porte de largeur T. rect(u,v)= 1 si u2 +v 2 T 0 ailleurs la relation (1) s'écrit dans l'espace de Fourier : Spectre_Image_reconstituée(u,v)=Spectre_Image_échantillonnée(u,v). H(u,v) Pour une interpolation linéaire, on peut utiliser une fonction h(i,j) de la forme pour i et j compris entre -T et +T : + j 2 h(i, j)= ) si (1 i2 T i 2 + j 2 T 0 ailleurs Dans le plan de Fourier : H (u,v)=t 2.sin c2 (π.u.v) Pour une interpolation cubique, on peut utiliser une fonction h(i,j) de la forme : a 2. x 3 a 3. x 2 1 si x 1 h i, j = a. x 3 5. x 2 8. x 4 si 1 x 2 0 sinon si a=-1/2, on obtient dans le plan de Fourier : 4

18 24.cos 2..u 6.cos 4..u.u.[2.sin 2..u sin 4..u ] H u,v = 2..u 4 3.3.2. Manipulation : Créez une image de dimension double (zoom = 2) qui ne contient pas encore les valeurs interpolées. % création de l'image zoomée non interpolée for i=1:zoom*ncol for j=1:zoom*nlin if ((uint16(j/zoom)*zoom==j) && (uint16(i/zoom)*zoom==i) && (uint16(j/zoom)+1<ncol) && (uint16(i/zoom)+1<nlin) ) MonImage1(j,i)=MonImage(uint16(j/zoom) +1,uint16(i/zoom)+1); else MonImage1(j,i)=0; Créez le masque de la fonction qui servira à la l'interpolation : % Calcul de la matrice h: matrix=2; for k1=-matrix:matrix for k2=-matrix:matrix h(k1+matrix+1,k2+matrix+1)=... % affichage du noyau de convolution figure(); imagesc(h); axis('image'); colormap(pink(256)); Calculez la convolution du noyau h(i,j) par l'image. Sous matlab, il existe la fonction «conv2()». Affichez le résultat Effectuez la même opération dans le plan des fréquences. Essayez différentes fonctions pour le noyau de convolution. 3.3. Quantification : Quel est l'effet de l'opération de quantification sur les images? 3.3.1. Principe : Vous allez répondre à cette question dans cette partie du TP. Cette quantification se 5

produit à plusieurs niveaux : - Lors de l'acquisition de l'image, le capteur en fonction de ses qualités intrinsèques (rapport signal/bruit) réalise une quantification du signal reçu de l'objet. - Outre les capacités du capteur, le nombre de bits réellement nécessaires pour coder les couleurs d'une image varie en fonction de l'image et de son «contenu informationnel». Ce nombre dép de l'entropie, définie à partir de la distribution des niveaux de gris de l'image. N E= p i.log 2 p i N est le nombre de niveaux de gris présents, p i est la proportion (0 < pi < 1) de points de l'image ayant pour niveau de gris i. i=0 E représente le nombre moyen de bits par pixel nécessaires pour coder toute l'information présente. 3.3.2. Manipulation : Essayer de quantifier l'image «clown.bmp» sur 16 bits, 7 bits, 6 bits, 5 bits, 4 bits, 2 bits et enfin 1 bit. Conclusions? 4. CHERCHEZ... Vous allez maintenant rechercher dans une image une information qui peut être différente suivant l'échantillonnage que vous choisissez. 4.1. Principe : Échantillonnez l'image 'Surprise.bmp' avec une fréquence égale à 1/3 de la fréquence actuelle et sans introduire de déphasage. Échantillonnez l'image 'Surprise.bmp' avec une fréquence égale à 1/3 de la fréquence actuelle et mais avec un déphasage de 1 pixel. Échantillonnez l'image 'Surprise.bmp' avec une fréquence égale à 1/3 de la fréquence actuelle et mais avec un déphasage de 2 pixels. 6

4.2. Manipulation : Vous pourrez utilisez le code ci-dessous comme exemple : clear all; Im_Surprise=imread('Surprise.bmp'); [Nlin Ncol]=size(Im_Surprise) for j=1:3:nlin for i=1:3:ncol Image1(round(i/3)+1,round(j/3)+1)=Im_Surprise(i,j); Image2(round(i/3)+1,round(j/3)+1)=... Image3(round(i/3)+1,round(j/3)+1)=... ; ; % Affichage figure(3); image(image3); colormap(pink(256)); figure(4); image(image1); colormap(pink(256)); figure(5); image(image2); colormap(pink(256)) 7

Lectures... Publication Nyquist Publication Shannon 8