Visual SLAM講座14 ~ch5の実践操作とピット回避~
1. 実運用前の準備作業
-
OpenCV のインストール
Ubuntu18 リファレンス: Ubuntu 18.04 での Opencv4 のインストールと C++ 構成
Ubuntu20 リファレンス: Ubuntu 20.04 ビルド OpenCV 4.5.0 および C++ 環境
の説明: OpenCV は、コンピューターで広く使用されている画像処理アルゴリズム ライブラリである、オープン ソースの画像アルゴリズムを多数提供します。ヴィジョン。
注: OpenCV のバージョンが異なるとステートメントも異なる場合があります。その場合は変更を加えてください。 -
ターミナルでch5フォルダに入り、以下のコマンドを実行してコンパイルします。
mkdir build
cd build
cmake ..
//注意,j4还是其他主要看自己的电脑情况
make -j4
- ビルドファイル内で実行します。
2、それぞれの実践的な操作
1. パソコン内の画像
- OpenCV の基本的な使い方 - OpenCV イメージの操作
ビルドにimageBasics
実行ステートメントを入力します: (ここで、ファイル内のステートメントを直接変更してイメージの固定位置を取得することもできます)
./imageBasics /home/fighter/slam/slambook2/ch5/imageBasics/ubuntu.png
実行後の結果:
まず、最初の画像が表示され、任意のキーを押して 2 番目の画像が表示され、次に任意のキーを押すと、3 と 4 が同時に表示されます。
画像をポップアップ表示している間、端末は次を出力します。
画像の幅は 1200、高さは 674、チャネル数は 3 です。
画像を走査するのに 1e-07 秒かかります。
- 画像の歪みを解消する
ビルドに imageBasics を入力し、undistortImage.cpp 内の画像ファイルのパスを変更することに注意してください。変更後は、忘れずに build に移動して make をコンパイルしてください。
実行文:./undistortImage
実行結果:
2.3Dビジョン
-
両眼視
ビルドにステレオを入力し、stereoVision.cpp 内の画像ファイルのパスを変更することに注意してください。変更後は、忘れずに build に移動して make をコンパイルしてください。
実行文: ./stereoVision
実行結果:
(1) 左目画像
(2) 右目画像
(3) SGBM の視差マップ (左目では見えるが右目では見えないため、対応する検査は空です)
( 4) 点群マップ
-
RGB-D ビジョン
ビルドでステレオを入力し、joinMap.cpp 内の画像ファイルのパスを変更することに注意してください。
コードの 21 ~ 30 行目を次のように変更します。注: パスは独自のものに変更する必要があります。!!変更後は、忘れずに build に移動して 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读取原始图像
実行ステートメント: ./joinMap
実行結果:
同時にターミナルには次の出力が表示されます。
转换图像中: 1
转换图像中: 2
转换图像中: 3
转换图像中: 4
转换图像中: 5
点云共有1081843个点.
3. 発生した問題
- 問題: cmake を実行すると、次の図に示すエラーが表示されます:
解決策: これは単なる警告です。観察すると、これはプロジェクト開発者に対する単なる警告であることがわかります。ここには 2 つのアプローチがあります。
- 無視してください。ここでは影響はありません
- ワークスペース内の CMakeLists.txt ファイルの、警告プロンプトに従って 2 行目にプロジェクト (chapter5)を追加します。この演習では、括弧内の内容は任意に入力できます。