Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parCoraline Labbé Modifié depuis plus de 7 années
1
Traitement d’images 420-D78-SW A17 Semaine 02
2
Plan de leçon Exemples d’application Images : définition
Trieuse à tomate, trieuse à raisin Fonctionnement Images : définition Mat : définition Filtres de lissage Les fonctions et méthodes de base Version youtube :
3
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
4
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.
5
image : définition Niveau de gris : 1 canal de 8 bit
RGB : 3 canaux de 8 bits chaque Niveau de gris : 1 canal de 8 bit
6
images : définition Exemple de valeurs dans un canal
7
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.
8
traitement d’images : définition
Image traitée Image originale × ¾® (x,y) transformation
9
Transformation par convolution
Point Spread Function ou filtre normalisé 1 1/9 w3 w9 w2 w8 w1 w7 w6 w5 w4 DF ou Dimension Filtre : 3 ü ï ý þ 1/9 X résultat d ivisé par la somme des poids [wx] du filtre (P-B) ou son nombre de pixels (P-H) (1-22) [rf. SCHOWENGERDT, p. 32]
10
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));
11
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);
12
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.
13
Lissage : comparaison
14
OpenCV (C++) : Fonctions et méthodes de base
Dans ces diapos, je vous indique les fonctionnalités de base pour travailler avec la librairie
15
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
16
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
17
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
18
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
19
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();
20
Arguments Dans la majorité des environnements de développement, il est possible de lire les arguments de la ligne de commande En C, on retrouve souvent cette ligne int main (int argc, char* argv[]) argc : Nombre d’arguments toujours > 1 *argv[] : Valeur des arguments
21
Arguments - Exemple int main (int argc, char* argv[]) { Mat img; img = imread(argv[1], CV_LOAD_IMAGE_GRAYSCALE); ... } Permet de charger l’image au chemin argv[1] en niveau de gris
22
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é.
23
Annexes - Les modules Nous explorerons les modules les plus utilisés dans cette section
24
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
25
Les modules imgproc.hpp calib3d.hpp feature2d.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
26
Les modules objdetect.hpp ml.hpp video.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
27
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.