Conférence 14 de Visual SLAM - Fonctionnement pratique et évitement des fosses de ch5
1. Travaux préparatoires avant l'exploitation pratique
-
Installer OpenCV
Référence Ubuntu18 : Installation d'Opencv4 et configuration C++ sous Ubuntu 18.04
Référence Ubuntu20 : Ubuntu 20.04 build
Description de l'environnement OpenCV 4.5.0 & C++ : OpenCV fournit un grand nombre d'algorithmes d'image open source, qui est une bibliothèque d'algorithmes de traitement d'image largement utilisée dans les ordinateurs vision.
Remarque : différentes versions d'OpenCV peuvent avoir des déclarations différentes, il suffit d'apporter des modifications à ce moment-là. -
Entrez le dossier ch5 dans le terminal et exécutez les commandes suivantes pour compiler.
mkdir build
cd build
cmake ..
//注意,j4还是其他主要看自己的电脑情况
make -j4
- Exécuter dans le fichier de construction.
Deux, chaque opération pratique
1. Image dans l'ordinateur
- La méthode de base d'utilisation d'OpenCV - exploitation de l'image OpenCV Entrez l' instruction d'exécution imageBasics
dans la construction : (ici, vous pouvez également modifier directement l'instruction dans le fichier pour obtenir la position fixe de l'image)
./imageBasics /home/fighter/slam/slambook2/ch5/imageBasics/ubuntu.png
Résultat après exécution :
d'abord, la première image apparaît, appuyez sur n'importe quelle touche pour afficher la deuxième image, puis appuyez sur n'importe quelle touche, 3 et 4 apparaissent en même temps.
Lors de l'affichage de l'image, le terminal affiche ce qui suit :
La largeur de l'image est de 1200, la hauteur est de 674 et le nombre de canaux est de 3. Il faut
1e-07 secondes pour parcourir l'image.
- Image undistortion
Entrez imageBasics dans build, faites attention à changer le chemin du fichier image dans undistortImage.cpp. Après la modification, n'oubliez pas d'aller dans build pour compiler make.
Instruction d'exécution : ./undistortImage
Résultat de l'exécution :
Vision 2.3D
-
Vision binoculaire
Entrez stereo dans build, faites attention à changer le chemin du fichier image dans stereoVision.cpp. Après la modification, n'oubliez pas d'aller dans build pour compiler make.
Déclaration d'exécution : ./stereoVision
Résultat de l'exécution :
(1) image de l'œil gauche
(2) image de l'œil droit
(3) carte de disparité du SGBM (car un œil gauche le voit mais pas l'œil droit, donc l'inspection correspondante est vide)
( 4) Carte de nuages de points
-
Vision RVB-D
Entrez stéréo dans build, faites attention à changer le chemin du fichier image dans joinMap.cpp.
Modifiez les lignes 21 à 30 du code pour qu'elles ressemblent à ceci. Remarque : Le chemin doit être modifié par le vôtre ! ! ! Après la modification, n'oubliez pas d'aller dans build pour compiler make.
ifstream fin("/home/fighter/slam/slambook2/ch5/rgbd/pose.txt");
if (!fin) {
cerr << "请在有pose.txt的目录下运行此程序" << endl;
return 1;
}
for (int i = 0; i < 5; i++) {
boost::format fmt("/home/fighter/slam/slambook2/ch5/rgbd/%s/%d.%s"); //图像文件格式
colorImgs.push_back(cv::imread((fmt % "color" % (i + 1) % "png").str()));
depthImgs.push_back(cv::imread((fmt % "depth" % (i + 1) % "pgm").str(), -1)); // 使用-1读取原始图像
Instruction d'exécution : ./joinMap
Résultat de l'exécution :
En même temps, le terminal affichera :
转换图像中: 1
转换图像中: 2
转换图像中: 3
转换图像中: 4
转换图像中: 5
点云共有1081843个点.
3. Problèmes rencontrés
- Problème : lors de l'exécution de cmake, l'erreur illustrée dans la figure ci-dessous apparaît :
Solution : il s'agit simplement d'un avertissement. En observant, nous pouvons voir qu'il s'agit simplement d'un avertissement pour les développeurs de projets. Il y a deux approches ici.
- Ignorez-le simplement, cela n'aura aucun impact ici
- Dans le fichier CMakeLists.txt de l'espace de travail, ajoutez projet (chapitre 5) dans la deuxième ligne en fonction de l'invite d'avertissement , et le contenu des crochets peut être rempli arbitrairement dans cette pratique.