Conférence 14 sur Visual SLAM - Ch5 Practice (Camera and Image)

1. Travaux préparatoires avant l'exploitation pratique

  1. 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à.

  2. Entrez le dossier ch5 dans le terminal et exécutez les commandes suivantes pour compiler.

mkdir build
cd build
cmake ..
//注意,j4还是其他主要看自己的电脑情况
make -j4
  1. Exécuter dans le fichier de construction.

Deux, chaque opération pratique

1. Image dans l'ordinateur

  1. 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 :
ImageBasics
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.

  1. 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 :
    déformer l'image

Vision 2.3D

  1. 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
    image de l'oeil gauche(2) image de l'œil droit
    image de l'oeil droit
    (3) carte de disparité du SGBM (car un œil gauche le voit mais pas l'œil droit, donc l'inspection correspondante est vide)
    Carte des disparités pour la SGBM
    ( 4) Carte de nuages ​​de points
    Nuage de points

  2. 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 :
joinMap
En même temps, le terminal affichera :

转换图像中: 1
转换图像中: 2
转换图像中: 3
转换图像中: 4
转换图像中: 5
点云共有1081843个点.

3. Problèmes rencontrés

  1. Problème : lors de l'exécution de cmake, l'erreur illustrée dans la figure ci-dessous apparaît :
    l'avertissement de camke
     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.
  1. Ignorez-le simplement, cela n'aura aucun impact ici
  2. 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.

Je suppose que tu aimes

Origine blog.csdn.net/qq_44164791/article/details/131144228
conseillé
Classement