TP 2 : TRANSFORMÉE DE FOURIER ET ALIASING

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

Introduction à MATLAB R

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

Calcul Formel et Numérique, Partie I

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

Séance 0 : Linux + Octave : le compromis idéal

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

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

Aide - mémoire gnuplot 4.0

Introduction à la présentation graphique avec xmgrace

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

TD : Codage des images

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Transmission d informations sur le réseau électrique

Cours de numérisation sur Epson Perfection

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

LABO PROJET : IMPLEMENTATION D UN MODEM ADSL SOUS MATLAB

Intégrer des médias. Plateforme e-tourisme. demo.minisites.encharentemaritime.com

Calcul Formel et Numérique, Partie I

LABO 5 ET 6 TRAITEMENT DE SIGNAL SOUS SIMULINK

Utiliser le logiciel Photofiltre Sommaire

TP 1 Introduction à Matlab Février 2009

TP Blender n 2 : Importation d un modèle SketchUp et animation

Banque d images SVT. Créer et utiliser une banque d images avec Picasa 2. Version anglaise -Windows 98. Banque photo en SVT : page 1 /14

Logiciel ArpentGIS-PC Guide de l utilisateur

SUGARCRM MODULE RAPPORTS

Projet Matlab : un logiciel de cryptage

Cours 7 : Utilisation de modules sous python

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

Tutoriel de formation SurveyMonkey

Manuel d utilisation du web mail Zimbra 7.1

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

BR-Docs guide d applications mobile Android

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

Formats d images. 1 Introduction

Expérience 3 Formats de signalisation binaire

Projet audio. Analyse des Signaux ELE2700

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Initiation à linfographie

Once the installation is complete, you can delete the temporary Zip files..

Opérations de base sur ImageJ

Utilisation du Logiciel de statistique SPSS 8.0

Guide d utilisation commandes des pièces de rechange Rev.1.0.3


Comment optimiser dans ImageReady?

Utilisation de l éditeur.

Manuel de formation Spaceman 1 ère journée

Configuration de GFI MailArchiver

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Europresse.com. Pour les bibliothèques publiques et de l enseignement. Votre meilleur outil de recherche en ligne. Guide version 1.

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

Pourquoi un GMAO? Pourquoi GMAO-Machine Bateau? Démarrage Dossier Menu Principal Structure, classification des équipements Fiche d intervention

Premiers pas avec Scribus

C RÉATION DE PDF (1) Cours SEM 205 Mieux utiliser le format PDF


Chapitre 22 Optimisation pour diffusion à l'écran, pour le web

Guide Utilisateur ArkadinAnywhere

RESPONSIVE WEB DESIGN

MANUEL UTILISATEUR. ADELYAMIN Version V1.0

MRTG & RRD Tool. Multi Router Traffic Grapher

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

Mallette Métrologie Contrôle des spectrophotomètres

Manuel d utilisation de la messagerie.

ANNEXE 8 : Le Mailing

TP : Gestion d une image au format PGM

MANUEL TBI - INTERWRITE

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Structure du format BMP, sa lecture, sa construction et son écriture

Formation. Module WEB 4.1. Support de cours

Espace Client Aide au démarrage

Fiches d aide à l utilisation

GUIDE UTILISATEUR. Guide utilisateur. Logiciel version 7 Documentation version 8

Optimisation et formats d images standards pour le Web Par Thierry Goulet Web Designer, ministère de la Sécurité publique. Plan de conférence

Applications KIP Cloud Guide de l utilisateur

PR OC E D U RE S D E B A S E

Guide d utilisation et d administration

Merci de suivre les indications suivantes afin de créer votre compte membre :

Transférer des fichiers à l aide de WinSCP et 2 contextes d utilisation dans des sites SPIP avec FCK editor

1. CRÉER UNE LISTE DE CONTACTS

Création de maquette web

iil est désormais courant de trouver sur Internet un document

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

MANUEL D UTILISATION DES OUTILS «MapCERN»

Echantillonnage Non uniforme

Formats de fichiers adaptés à l'archivage électronique à moyen et long terme

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl , 17 novembre, Lyon. Alexis Sukrieh

Python - introduction à la programmation et calcul scientifique

Table des matières. 1 À propos de ce manuel Icônes utilisées dans ce manuel Public visé Commentaires...

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

RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU. N de série

Outils permettant la diffusion de l information. Un point sur le droit numérique

Eclipse atelier Java

«Petit guide d utilisation Prezi» par Marc Nolet

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Transcription:

Traitement de l information et vision artificielle Ecole des Ponts ParisTech, 2 ème année Guillaume Obozinski guillaume.obozinski@imagine.enpc.fr TP 2 : TRANSFORMÉE DE FOURIER ET ALIASING La séance de TP se fait sous environnement Windows, sauf si vous avez une nette préférence pour Linux. Pour commencer la séance 1. Lancer un navigateur, par exemple Mozilla, et aller sur la page web suivante : http://imagine.enpc.fr/~marletr/enseignement/mpi/index.html 2. Télécharger l archive. Un fois décompressée on obtient un dossier TIVA_TP2. 3. Lancer ensuite Matlab et modifier le répertoire de travail en choisissant le répertoire Bureau/TIVA_TP2 que vous avez créé. 4. Pour les différentes questions, vous pouvez utiliser un «copier-coller» à partir de ce document. Il est fortement recommandé de saisir toutes les commandes dans la fenêtre de l éditeur que vous avez ouverte. Pour exécuter les commandes saisies, il suffit de les sélectionner avec la souris et d appuyer sur la touche F9. 5. Pour inclure des commentaires dans le programme, ce qui est fortement recommandé, vous devez utiliser le caractère %. Tout ce qui suit ce caractère sera négligé lors de l exécution. 1. Rappel des commandes de base de Matlab. Exécuter ligne par ligne les commandes suivantes et chercher à comprendre ce qu elles produisent. 1. Créer une variable ou un tableau : % this is a comment a = 1; a = 2+1i % real and complex numbers b = [1 2 3 4] % row vector c = [1; 2; 3; 4] % column vector d = 1:2:7 % here one has d=[1 3 5 7] A = eye(4) % identity matrix B = ones(4) % matrix with all the entries =1 C = zeros(4) % matrix with all the entries =0 D = rand(4) % random matrix with Unif[0,1] entries E = reshape(b,2,2) % transforms the 4-vector b into a 2 x 2 matrix D c = b' % transpose 1

2. Modifications des vecteurs et des matrices : A(2,2) = B(1,1) + b(1) % to access an entry in a vector or matrix b(1:3) = 0 % to access a set of indices in a matrix b(end-2:end) = 1 % to access the last entries b = b(end:-1:1) % to reverse a vector b = sort(b) % to sort values b = sort(b,'descend') % to sort values in descending order b = b.* (b>2) % to set to zeros (threshold) the values below 2 b(3) = [] % to suppress the 3rd entry of a vector B = [b; b] % to create a matrix of size 2 x 4 c = B(:,2) % to access 2nd column 3. Instructions avancées : a = cos(b); a = sqrt(b) % usual function help perform_wavelet_transform; % print the help a = abs(b); a = angle(b); % norm and argument of a complex a = real(b); a = imag(b); % real and imaginary part of a complex disp('hello'); % display a text disp( sprintf('valeur de x=%.2f', x) ); % print a values with 2 digits A(A==Inf) = 3; % replace Inf values by 3 A(:); % flatten a matrix into a column vector max(a(:)); % max of a matrix M = M.* (abs(m)>t); % threshold to 0 values below T. 4. Affichage des graphiques : plot( 1:10, (1:10).^2 ); % display a 1D function title('mon titre'); % title xlabel('variable x'); ylabel('variable y'); % axis subplot(2, 2, 1); % divide the screen in 2x2 and select 1st quadrant 5. Programmation : for i=1:4 % repeat the loop for i=1, i=2, i=3 et i=4 disp(i); % make here something end i = 4; while i>0 % while syntax disp(i); % do smth i = i-1; end 2. Charger et visualiser des signaux et des images. 2

1. Trouvez une image sur internet et sauvez-la dans votre répertoire courant sous le nom test_image.xxx (ici, xxx est l extension de l image : jpg, gif, png, tiff,...). I=imread('test_image.xxx'); figure('color','cyan') image(i) axis off axis image 2. Vous pouvez aussi visualiser les composants R,G et B de l image : figure('color','cyan') J = I; J(:,:,2:3) = 0; image(j) axis off axis image 3. La commande image permet de visualiser une image RGB ou NB dont les couleurs sont soit codés sur 8 bits par un entier au format uint8, soit codés par des doubles dans l intervalle [0, 1]. imagesc permet d afficher des images en niveaux de gris dont les valeurs ne satisfont pas ces restrictions. 4. Pour "imprimer" une image ou un graphe au format.jpg,.png,.eps ou autre on utilisera la commande print. Elle imprime le contenu de la figure courante. Par exemple, print('-depsc','mon_image.eps') pour une image EPS couleur. Lorsqu il s agit d images PNG et JPEG sont plus appropriées. 3. Transformée de Fourier d une image 1. Chargez l image lena.png 2. Calculez et affichez les différentes parties de la FFT de cette image : sa partie réelle, sa partie imaginaire, son module, sa phase. On pourra utiliser les commandes fft2, ifft2, ifftshift, ifftshift, imagesc, real, imag, abs. Pour fixer l affichage en niveaux de gris on utilisera colormap('gray') avec imagesc. Il sera peut-être nécessaire de prendre le logarithme d une quantité pour que l image obtenue soit lisible. 3. Recalculer l image à partir de sa transformée de Fourier. Que se passe-t-il si on ne prend que le module de la TFD pour reconstruire l image?... que la phase? 4. Aliasing 1. Chargez l image brickwall2.jpg et affichez la. 2. Redimensionnez l image en changeant sa taille à l écran et son aspect ratio. Qu observet-on? 3. Ecrivez une fonction qui sous-échantillonne l image en prenant 1 pixel sur T. Visualisez l image obtenue pour différentes valeurs de T de 2 à 10. La fonction pause pourra être utile. 3

4. On se propose maintenant d étudier l aliasing sur une image synthétique. Le script alias_circle.m calcule la fonction (x, y) sin(200(x 2 + y 2 )) et permet de la visualiser comme un image. Redimensionnez l image à la main pour observer les artefacts. Le script permet de sous-échantillonner l image par des facteurs de 6 à 120 par pas de 6, (ou par des facteurs qui sont des diviseurs de la taille de l image en éditant le script). (Le script se met en pause après l affichage de chaque image et il suffit d appuyer sur la barre d espacement pour passer à l image suivante.) 5. Zoom en Fourier. Pour les images sous-échantillonnées de la question précédente, nous allons essayer de reconstruire l image d origine grâce au théorème d échantillonnage : ce sera un zoom en Fourier! Pour un sous-échantillonnage sur un grille de pas T 1 et T 2, la représentation de l image sous-échantillonnée sur la grille de l image initiale est la multiplication de l image initiale par un peigne de Dirac bidimensionnel de pas T 1 et T 2 multipliée par un facteur T 1 T 2, soit pour une image f de dimensions initiales N 1 N 2, f d [n 1, n 2 ] = T 1 T 2 f [n 1, n 2 ] N 1 T 1 1 p 1 =1 Ecrire une fonction qui recalcule cette image. N 2 T 2 1 p 2 =1 δ[n 1 p 1 T 1 ] δ[n 2 p 2 T 2 ]. 6. Le théorème d échantillonnage suggère d appliquer un filtre passe-bas qui supprime toutes les fréquences supérieures à la fréquence de Nyquist, c est-à-dire supérieures à la fréquence d échantillonnage divisée par 2. En une dimension un, dans la TFD, si on échantillonne avec un pas T qui est un diviseur de la longueur N du signal initial f, la fréquence d échantillonnage 1/T correspond au coefficient f [N/T]. En déduire la forme du filtre passe bas en Fourier à appliquer à f d. Attention au fait que la FFT de Matlab renvoie le vecteur ( f [0], f [1],..., f [N]) dont le premier coefficient est le coefficient de fréquence 0. Dans le cas d une image, les coefficients correspondants aux ondes planes selon les axes sont dans la première colonne et première ligne de la TFD. Implémentez une fonction fourier_interp.m qui tente de reconstruire l image initiale à partir de l image sous-échantillonnée et appliquez la au images sous-échantillonnées des ondes concentriques. Est-ce que l on évite l aliasing? Imprimer une image qui illustre ceci ainsi que l image sous-échantillonnée correspondante. 7. Anti-aliasing. On explore maintenant le principe du filtre anti-aliasing. Modifiez le script alias_circle.m pour représenter la fonction (x, y) sin ( 200 ((2x) 3 + (2y) 3 ) ). et sauvez le nouveau script sous un nom de votre choix. Pour attenuer les fréquences au delà d un seuil θ on se propose de flouter l image par convolution avec une gaussienne bidimensionelle isotrope d écart-type θ (On pourrait faire un choix plus conservateur...). La fonction blurr.m calcule la convolution d une gaussienne, dont l écarttype σ est à spécifier en pixels, avec l image. Utilisez cette convolution comme filtre anti-aliasing avant de sous-échantillonner l image et réutilisez le zoom en Fourier de 4

la question précédente pour reconstruire une grande image. Quel valeur choisirezvous pour σ en fonction de T = T 1 = T 2? Qu obtient-t on? Est-ce qu on a supprimé de l aliasing? Imprimer une image qui illustre ceci ainsi que l image sans filtre antialiasing correspondante. 8. (Optionel) Appliquer un très léger flou à l image brickwall2.jpg. Qu observez-vous en terme d aliasing en reformatant la figure? 5. Version discrete du théorème d échantillonnage On se propose ici de retrouver la fréquence de coupure de Nyquist qu on a utilisé dans la section précédente. 1. Soit f R N un signal discret. Quelle relation existe il entre f [n] et f [N n]? 2. Formule sommatoire de Poisson discrète. On considère, pour f R N, sa version échantillonnée f d avec un pas T {1,..., N} qui peut s écrire f d = T f c avec c = N/T 1 p=0 δ[ T p] un peigne de Dirac. Calculer la transformée de Fourier discrète du peigne de Dirac et montrer que c est un autre peigne de Dirac. 3. En déduire la forme de f d et quel filtre passe-bas il faut lui appliquer pour retrouver le signal initial sous l hypothèse où le spectre de f est concentré sur les basses fréquences. En particulier en déduire la valeur de coupure de Nyquist. Le compte-rendu est à envoyer sous format pdf à guillaume.obozinski@imagine.enpc.fr dans un délai de deux semaines. 5