Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parJean-Paul Bouchard Modifié depuis plus de 8 années
2
Traitement d’images 420-D78-SW A16 Semaine 02
3
Plan de leçon Images : définition Mat : définition Filtres de lissage Les fonctions et méthodes de base
4
images : définition Une image numérique est une composition de matrices dont chaque cellule possède une valeur numérique qui représente un pixel Elle peut être acquise par un capteur (caméra, scanneur, carte d'acquisition, etc.) générée par un logiciel
5
images : définition Une image peut être composée d'une ou plusieurs matrices Chaque matrice représente un canal de « couleur » Par exemple une image RGB est constituée de trois canaux : rouge, vert et bleu. Chaque pixel d’un canal possède une valeur entre 0 et 255 qui représente le niveau de saturation.
6
image : définition RGB : 3 canaux de 8 bits chaque Niveau de gris : 1 canal de 8 bit
7
images : définition Exemple de valeurs dans un canal
8
traitement d’images Dans plusieurs cas, les traitements effectués sur les images sont des opérations sur matrices Dans la plupart des applications, les images sont prétraitées pour mettre en évidence certaines caractéristiques Exemple : les contours, lissage du bruit, etc.
9
traitement d’images : définition 000000000 0 0 0 0 0 0 0 0 0 0 000000000 0 0 0 0 0 0 0 0 0 0 Image traitéeImage originale (x,y) transformation
10
Transformation par convolution (1-22) [rf. SCHOWENGERDT, p. 32] ou filtre normalisé 1 1 1 1 1 1 111 Point Spread Function w3w3 w9w9 w2w2 w8w8 w1w1 w7w7 w6w6 w5w5 w4w4 1/9 X 1/9 DF ou Dimension Filtre : 3 résultat d ivisé par la somme (P-B) des poids [w x ] du filtre (P-B) (P-H) ou son nombre de pixels (P-H)
11
Filtres de lissage Le lissage permet de réduire le bruit dans une image. Le lissage est souvent utilisé dans le prétraitement des images. Filtre de moyenne : Applique la moyenne des valeurs des voisins d'un pixel donné au pixel de destination. Syntaxe de base cv::blur (source, destination, dimension2D) cv::blur (imgSrc, imgDst, Size(3, 3));
12
Filtres de lissage Filtre de médiane : Ce filtre applique la médiane du filtre de convolution sur l'image destination. Il est bien de noter que ce filtre est relativement lent, car il doit trier les valeurs à chaque convolution. Syntaxe cv::medianBlur (src, dst, dimension1D); cv::medianBlur (imgDst, imgSrc, 3);
13
Filtres de lissage Filtre Gaussien : Ce filtre utilise la fonction Gaussienne (Courbe normale). Chaque pixel dans le filtre de convolution a un poids qui dépends de sa distance par rapport au point central. Syntaxe GaussianBlur(src, dst, dim2D, ecartTypeX) GaussianBlur(src, dst, Size(5, 5),.75); Ecart_type représente l'effet évasif d'une courbe normale. Plus celui-ci est élevé plus la "cloche" sera évasé, ainsi les pixels proches vont avoir un poids plus important par rapport à la moyenne.
14
Lissage : comparaison
15
OpenCV (C++) : Fonctions et méthodes de base Dans ces diapos, je vous indique les fonctionnalités de base pour travailler avec la librairie
16
Type Mat Le classe utilisée pour travailler avec les images est « Mat » Il y a plusieurs constructeurs que l’on retrouve dans le module core.hpp Mat(); Mat (int rang, int colonne, int type); Type Nombre de bit. Ex : CV_8UC1 8 bits 1 canal
17
Lire un fichier Pour lire un fichier, on utilise la fonction Mat imread(string nom, int flag) Nom Nom du fichier Flag Méthode CV_LOAD_IMAGE_UNCHANGED CV_LOAD_IMAGE_GRAYSCALE CV_LOAD_IMAGE_COLOR Cette fonction retourne un objet Mat
18
Créer une fenêtre Il faut créer une fenêtre pour pouvoir afficher l’image dans celle-ci On utilise la méthode void namedWindow (string nom, int flag) Nom Nom de la fenêtre Flag Type CV_WINDOW_AUTOSIZE : Image en taille originale CV_WINDOW_FREERATIO, *_KEEPRATIO : Indique si l’on peut changer les proportions w x h
19
Afficher une image Pour afficher une image dans une fenêtre, il faut faire appel à la méthode void imshow(string nomFenêtre, Mat img) Lorsque l’on affiche une image simple, il faut mettre le processus en attente autrement, l’image apparaîtra et disparaîtra aussitôt La méthode int waitKey(int delais) Délais en milliseconde Cette fonction retourne la touche qui a été appuyée
20
Gestion de la mémoire Dans cette version d’OpenCV, la gestion de la mémoire se fait automatiquement Cependant, il est possible de libérer de la mémoire en utilisant la méthode « mat.Release() » Exemple Mat A(1000, 1000, CV_64F); A.Release();
21
Exercices Faites une application qui affiche 2 fenêtres dans lesquelles ont retrouvent la même image dont une est chargée en couleur et l’autre en noir et blanc. Faites une application qui affiche 4 fenêtres qui dans chacune ont retrouvera une image originale et dans les autres la même image lissée avec les filtres de lissage vu en cours. Le titre des fenêtres devra représenter le type de lissage utilisé.
22
Annexes - Les modules Nous explorerons les modules les plus utilisés dans cette section
23
Les modules OpenCV offre plusieurs modules qui couvrent chacun des domaines ou approches différents pour le traitement d’images Core.hpp Définit les blocs de base pour tout application de traitement d’images Highgui.hpp Définit les blocs d’interface homme-machine
24
Les modules imgproc.hpp Fonctions et méthodes de manipulation d’images calib3d.hpp Calibration et reconstruction 3D feature2d.hpp Extraction de caractéristiques. Par exemple, les zones de grand contraste
25
Les modules objdetect.hpp Détection d’objets. Par exemple, le classificateur de Haar ml.hpp Apprentissage machine video.hpp Gestion et analyse des fichiers vidéos. Par exemple : Le suivi d’objet
26
Les modules gpu.hpp Utiliser la puissance du GPU pour faire du traitement d’images
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.