Traitement d'images et de vidéos avec OpenCV 4
en Python (Windows, Linux, Raspberry)
Laurent Berger
D-Booker
1. Pour commencer1
1.1. Organisation en modules d'OpenCV2
1.2. Installation d'OpenCV3
1.3. Que trouve-t-on dans ce livre ?4
1.4. Exemples du livre5
2. Écran de contrôle de caméra vidéo - Gestion des processus légers7
2.1. Acquisition de plusieurs flux vidéo7
2.2. Choix des paramètres des flux vidéo en utilisant la ligne de commande11
Programme principal12
Enregistrement, lecture du fichier de configuration et traitement de l'argument zoom20
Lecture et choix de la résolution du flux23
Gestion des événements souris24
2.3. Utilisation des processus légers pour l'acquisition des flux vidéo25
Acquisition des flux vidéo et calculs26
Modification du programme principal27
2.4. Comparaison des temps de calculs30
3. Segmentation d'images31
3.1. Détection de contours32
Création d'une glissière33
Classe Filtrage35
3.2. Seuillage d'image45
Présentation de l'exemple46
Classe Seuillage et sa méthode run48
Méthode de seuillage53
Composantes connexes et gestion des composantes connexes56
Recherche des composantes connexes : variante58
3.3. k-moyenne60
La classe ClassifKMoyennes60
La méthode classification62
La méthode run65
Autres méthodes efface-fenetre et lire-valeur-glissiere66
4. Réaliser une caméra panoramique67
4.1. Principe de la photographie panoramique68
4.2. Utilisation du programme69
4.3. Organisation du programme70
4.4. Initialisation du panorama72
Construction, appariement et image retenues74
Estimation des transformations et des paramètres des caméras et affinement77
Projection et couture79
4.5. Composition du panorama82
4.6. Réglage des caméras84
4.7. Sauvegarde et lecture des configurations85
4.8. Description des autres fonctions86
5. Calibrage d'images et stéréovision87
5.1. Principe de laÍ stéréovision88
5.2. Utilisation du programme90
5.3. Calibrage des caméras et du système de stéréovision94
Création d'une mire94
Calibrage d'une caméra96
Calibrage de la stéréovision102
5.4. Algorithmes de stéréovision106
5.5. Visualisation des données avec VTK110
6. Apprentissage automatique - Machine learning111
6.1. Classes de base pour les données et le modèle112
6.2. Données classées par le programme - Fonction DonneesModele113
6.3. Initialisation des modèles119
Modèle ANN-MLP121
Modèle EM122
Modèle KNearest123
Modèle LogisticRegression123
Modèle NormalBayesClassifier124
Modèle RTrees124
Modèle SVM124
6.4. Programme principal125
6.5. Descripteur du contour128
7. Utilisation des modèles deep learning131
7.1. Principales fonctions du module dnn132
Lecture du réseau132
Préparation des données133
Fixer les entrées135
Lecture du résultat135
Nom des couches résultats136
Convertir un blob en image136
7.2. Utilisation de l'architecture GoogleNet/Caffe136
7.3. Utilisation de l'architecture AlexNet/Caffe142
7.4. Utilisation de l'architecture Faster R-CNN Inception/TensorFlow143
7.5. Utilisation de l'architecture You Only Look Once149
Filtrage des zones : fonction selection-zones152
8. Traitement non réaliste de photographies155
8.1. Utilisation des effets des modules photo et xphoto156
cv.detailEnhance156
cv.edgePreservingFilter157
cv.pencilSketch157
cv.stylization158
cv.xphoto.oilPainting158
Classe glissiereEffet159
Programme principal161
8.2. Style artistique en utilisant du deep learning163
Modification de la classe GlissiereEffet163
Modification du programme principal164
8.3. Style artistique et fonction du module photo165
9. Reconnaissance faciale et de la pose169
9.1. Détection de visages170
Classifieur en cascade pour détecter un visage170
Deep learning pour détecter un visage172
Identification d'une personne175
9.2. Détection des repères di visage182
Préliminaires182
Programme183
9.3. Pose d'un ou plusieurs humains186
Préliminaires186
Programme principal189
Fonction selection-points191
Fonction detection-personne193
Memento d'OpenCV195
1. Tableau Numpy et image195
2. Accéder aux pixels d'une image196
Accéder à un pixel196
Accéder à une ligne, une colonne ou à une zone197
Conversion de type198
3. Types de base199
Type Scalar, Point et Rect199
Type Size199
4. Contours200
5. Compter les pixels vérifiant une condition201
6. Sélectionner des pixels en utilisant un masque binaire201
7. Documentation et aide d'OpenCV203
8. Exemples d'OpenCV205
9. Matplotlib et OpenCV205
Construire la librairie Python à partir des sources d'OpenCV207
1. Pourquoi installer sa propre version de Python ?207
2. Installation d'OpenCV à partir des sources207
3. Installation sur Raspberry211
Bibliographie213
Index217
Fonctions, classes, méthodes OpenCV225
À propos de l'auteur229