1 Introduction IMAGES

Documents pareils
Traitement numérique de l'image. Raphaël Isdant

TP SIN Traitement d image

Fête de la science Initiation au traitement des images

Par Richard Beauregard. Novembre 2011

Traitement bas-niveau

Utilisation du logiciel ImageJ gratuit

Traitement d un AVI avec Iris

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

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

Projet Matlab : un logiciel de cryptage

Hiver 2013 IMN 259. Introduction à l analyse d images. Par Pierre-Marc Jodoin

Géométrie discrète Chapitre V

TD : Codage des images

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

TP : Gestion d une image au format PGM

DÉCOUVERTE DE CAPTURE ONE

Ecran : Processeur : OS : Caméra : Communication : Mémoire : Connectique : Audio : Batterie : Autonomie : Dimensions : Poids : DAS :

Optimisation, traitement d image et éclipse de Soleil

S.P.S.N. Lac du Der 2008

Initiation à linfographie

Chap17 - CORRECTİON DES EXERCİCES

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

Transférer et enregistrer les photos sur l'ordinateur

Sur trois couches, on obtient donc 2563 = de couleurs, soit 24bpp (Bit Per Pixel).

Opérations de base sur ImageJ

1 Comment faire un document Open Office /writer de façon intelligente?

Exercices de dénombrement

Formats d images. 1 Introduction

PHPWEBSITE -Tutoriel image

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

Cours 7 : Utilisation de modules sous python

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Supports. Images numériques. notions de base [1]

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

INFO 2 : Traitement des images

Catégories de format d'optimisation

Cours 02 : Problème général de la programmation linéaire

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Recherche dans un tableau

Création de maquette web

Vous incarnez un surdoué en informatique qui utilise son ordinateur afin de pirater des comptes bancaires un peu partout dans le monde et s en mettre

Le traitement du 5ème concours A.I.P. pour l objet SH2-155 de Franck JOBARD

Table des matières. 10 Gimp et le Web. Option de traitement d'images Mémento pour la séance N o Création d'animation

Nombre de marches Nombre de facons de les monter

FORMATS DE FICHIERS. Quels sont les différents types d informations numériques dans un document multimédia?

Modules Multimédia PAO (Adobe)

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Créer des étiquettes avec les adresses d'un tableau Calc

Les images numériques. 1. Le dessin vectoriel

Livret Phoenix-M. Par Georges Khaznadar, Lycée Jean Bart, Dunkerque d'après Phoenix Programmer's Manual

COPIER, COUPER, COLLER, SELECTIONNER, ENREGISTRER.

1.6- Génération de nombres aléatoires

L'astrophotographie au Cercle

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

Chapitre 18 : Transmettre et stocker de l information

Utiliser le logiciel Photofiltre Sommaire

Dossier table tactile - 11/04/2010

Couples de variables aléatoires discrètes

1 Représentation d une image

Notion de fonction. Série 1 : Tableaux de données. Série 2 : Graphiques. Série 3 : Formules. Série 4 : Synthèse

Tune Sweeper Manuel de l'utilisateur

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

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

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

Chapitre 02. La lumière des étoiles. Exercices :

LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES

Cours de numérisation sur Epson Perfection

Navigation dans Windows

TITRE PARTIE TITRE SECTION. Faire des anaglyphes avec CatiaV5

Algorithmique avec Algobox

Manuel d Utilisateur - Logiciel ModAFi. Jonathan ANJOU - Maud EYZAT - Kévin NAVARRO

I. Introduction aux fonctions : les fonctions standards

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

Gestion de gros fichiers binaires (images) en APL*PLUS III

Coup de Projecteur sur les Réseaux de Neurones

VOS PREMIERS PAS AVEC TRACENPOCHE

Vers l'ordinateur quantique

Le codage informatique

Python - introduction à la programmation et calcul scientifique

Immersion - Vision 3D dans la RV.

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

Mode d'emploi du plugin Grayscale_Granulometry

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

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Tp_chemins..doc. Dans la barre "arche 2" couleur claire 1/5 21/01/13

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Annexe commune aux séries ES, L et S : boîtes et quantiles

Codage d information. Codage d information : -Définition-

La mémoire. Un ordinateur. L'octet. Le bit

Chapitre 22 : (Cours) Numérisation, transmission, et stockage de l information

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

Jean Dubuffet AUTOPORTRAIT II

Analyse de la vidéo. Chapitre La modélisation pour le suivi d objet. 10 mars Chapitre La modélisation d objet 1 / 57

FOSMOR Fooo Optical Sheet Music Recognition

Plan du cours Cours théoriques. 29 septembre 2014

I00 Éléments d architecture

Master Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2.

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Transcription:

IMAGES 1 Introduction Pour représenter une image, une possibilité est de lui superposer une grille, dont on appelle chaque case un pixel (picture element). On colorie alors chaque case d'une couleur uniforme. L'image pixellisée constitue une approximation plus ou moins dèle l'image de départ. Plus la grille est ne, plus l'image sera lisse mais plus le nombre de données sera important. Une image numérique peut donc être vue comme un tableau (matrice) à n lignes et p colonnes dont les coecients sont les valeurs des pixels. dans l'exemple précédent : 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 Une image en noir et blanc se traduit directement en une matrice de bits : 0 pour noir et 1 pour blanc. On parle donc de représentation bitmap des images (carte des bits). Si on veut introduire un peu plus de nuances, il faudra attribuer à chaque pixel un peu plus de d'un bit. Dans le cas d'une image en niveau de gris, la valeur du pixel est généralement un entier entre 0 (noir) et 255 (blanc) (soit 256 valeurs possibles entre (0000 0000) 2 et (1111 1111) 2 ). On utilise donc un octet (8 bits) par pixel. Et pour la couleur? Une image couleur est en fait la réunion de trois images : une rouge, une verte et une bleue. Cette représentation s'apparente au fonctionnement du système visuel de l'homme (nous avons au fond de notre rétine trois types de récepteurs selon la longueur d'onde recue...). Chaque pixel est alors représenté par un triplet d'entiers (Red, Green, Blue), dont chacun est codé sur un octet. Le codage utilise donc 3 8 = 24 bits par pixel. Cela permet d'encoder 2 24 soit un peu plus de 16 millions de couleurs diérentes (bien que nous n'en diérencions en fait pas autant). Par exemple, (255,0,0) correspond à un pixel rouge, (0,0,0) noir, (255,255,255) blanc, (100,0,120)... remarque : le jaune est un mélange de rouge et de vert. Si l'image précédente est encodée en Noir et blanc, elle est de taille :... Si l'image précédente est encodée en niveau de gris sur un octet, elle est de taille :... Si l'image précédente est encodée en RGB, elle est de taille :...

Dans la suite du chapître, les traitements ne s'appliquent qu'à des images en niveaux de gris. Pour des images en couleur, il est possible d'opérer en appliquant les traitements proposés à chacune des trois couleurs! Voilà une image en niveau de gris qui va nous servir de base pour les traitements : La fonction Image.open( chemin d'accès ) permet de créer un objet python image correspondant à l'image du chemin fourni. Cet objet a plusieurs attributs dont deux nous interessent plus particulièrement : ses dimensions les valeurs attribuées à chaque pixel (en ligne). Si l'on veut visualiser correctement la matrice des données, il convient donc de mettre cette liste de données en forme. La fonction OuvrirImagegris(path) qui vous sera fournie en TP vous permet d'obtenir directement les données sous forme matricielle (ce sont des tableaux numpy!). Attention, la taille d'une matrice est donnée sous la forme nombre de lignes nombre de colonnes, c'est à dire hauteur largeur. Or les dimensions des images sont généralement données sous la forme largeur hauteur. Il faut donc être vigilant. Les dimensions de cette image sont :... Cela représente...bits. 2 pixellisation An de réduire l'espace utilisé pour stocker une image, on a vu qu'on pouvait utiliser une grille de pixellisation moins ne. Que fait le code suivant?

3 Un exemple de traitement pixel par pixel : modier les contrastes Le contraste peut être modié par l'application d'une fonction mathématique (de 0; 255 dans 0 : 255 ) sur la valeur de chaque pixel. La modication la plus drastique consiste à obtenir du noir et blanc. (voir code) Si l'on remplace la valeur de chaque pixel en utilisant la fonction carrée ramenée à 0 : 255 (f(x) = x 2 /255), l'image est assombrie. Si on utilise la fonction racine carrée ramenée à 0 : 255 (g(x) =...), l'image est éclaircie. Ces deux fonctions ont tendance à diminuer les contrastes. Une autre idée consiste à faire un réajustement linéaire des valeurs des pixels selon : y = x + 0.4(x 127) si y 0; 255 f(x) = 0 si y < 0 255 si y > 255 (1) En TP vous programmerez ce réajustement. Quel est son eet? 4 Un exemple de traitement local : les ltres Filtrer une image consite à lui appliquer une transformation mathématique modiant la valeur des pixels. Un ltre F est déni par une matrice carrée d'ordre n impair, qui se déplace sur l'image en modiant la valeur du pixel central selon les valeurs de ses voisins. f 0,0 f 0,1 f 0,2 prenons l'exemple d'un ltre F de taille 3. F = f 1,0 f 1,1 f 1,2 Appliquons le à la matrice A d'une image. f 2,0 f 2,1 f 2,2 On superpose le ltre à la matrice carrée extraite de A centrée sur la valeur a i,j. On eectue les produits terme à terme. On remplace a i,j par la somme de ces produits terme à terme. a i,j b i,j = On parle de convolution discrète (opérateur *) :

remarque : Les bords de l'image est toujours exclu du traitement local! Vous programmerez en TP une fonction ltrage(a,f) prenant en argument deux tableaux numpy (A celui de l'image et F celui du ltre) et renvoyant un tableau numpy B, de même taille que A, contenant les valeurs de A ltrées par F. A quoi cela peut il servir? restaurer une image détecter les contour 4.1 application à la restauration d'image Parfois certains défauts (poussières, uctuation de l'intensité électrique, erreurs de transmissions...) conduisent à avoir une image abimée. Les valeurs de certains pixels sont erronées., d'où des taches de petites tailles à certains endroits aléatoires de l'image. On parle alors de bruit. exemple : Le ltre de moyenne d'ordre 3 remplace chaque pixel par la moyenne de ses 9 voisins (lui compris). La matrice associée est donc : Voilà l'image obtenue après restauration de l'image abimée proposée par le ltre de la moyenne. On constate que le bruit est bien partiellement réduit mais que le ltrage provoque un certain ou. Il existe d'autres ltres plus ecaces, comme le ltre médian (qui consiste a prendre la médiane et plus la moyenne) mais qui ne correspond pas à une convolution.

4.2 Détection des contours La notion de contour est intimement liée à celle des variations de valeurs entre un pixel et ses voisins. Dans une partie homogène (par exemple, le ciel), les valeurs des pixels sont proches. Par contre, un contour provoque de fortes variations donc une augmentation locale du gradient. Si l'on traitait de fonction continue f : R 2 R 2 avec f(x, y) la valeur du pixel, le gradient de f au point (x, y) serait donné par gradf = f u #» x + f u #» y. x y Mais comme nous sommes en discret, un première approche du gradient peut être d'assimiler : f x à... f y à... donc on utilisera les ltres : G x = G y = Une première approximation de la norme du gradient peut donc être G = (G x A) 2 + (G y A) 2. On ne retient que les pixels donc la norme du gradient est supérieure à un certain seuil comme contour potentiel. En TP vous écrirez un programme permettant d'obtenir l'image ci-dessous (On a retenu un seuil de 15 : Si le gradient en (i, j) est superieur à 14, le pixel (i, j) est noir, sinon, il est blanc).

5 Pour aller plus loin... jouer avec la couleur Pour encoder en bitmap une image couleur, on utilise non plus un octet par pixel mais trois : un pour le rouge, un pour le vert, un pour le bleu. Vosu trouverez les versions couleur des images du tp sur le site, ainsi que le code qui vous permet de recuperer le contenu d'une image couleur et celui de la fonction permettant d'enregistrer une image couleur. Dans un premier temps, vous ouvrirez une image et observerez la structure des données. Votre objectif sera de jouer à Andy Warhol, créateur du pop Art en créant une l'oeuvre d'art suivante : Vous vous aiderez de trois fonctions composanterouge(), composanteverte(), composantebleu() à écrire, ainsi que de la methode numpy.concatenate.