Open3D: A Modern Library for 3D Data Processing
Open3D 是一個開放原始碼的函式庫,支援對3D資料的快速開發,在接口端同時支援C++與Python,後端經過最佳化並針對平行化設計。
在 Open3D 之前,3D 資料常用 Point Cloud Library (PCL)處理,可惜的是在PCL開放源始碼後,開發不太活躍,在編譯時可以清楚的感覺到其壅腫的設計,使編譯時間拉長。
設定Open3D環境
(如果在以下文字說明安裝過程中遇到錯誤,可以參見影片,其中包含解決錯誤過程)
步驟
- Pyenv
- 安裝 Open3D
- 安裝VS Code
- 執行Open3D 範例程式
Pyenv
因為Open3D支援以python binding方式操作底層C++ API,這裡先設定好pyenv管理python版本
安裝 pyenv 和 pyenv-virtualenv
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
$ sudo apt update
$ sudo apt install python-pip
$ sudo pip install virtualenv
$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
把下列加到 ~/.bashrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
source ~/.bashrc
pyenv install 3.6.3
pyenv global 3.6.3
pyenv versions
安裝 Open3D
安裝步驟詳見:
Ubuntu
git clone https://github.com/IntelVCL/Open3D
scripts/install-deps-ubuntu.sh
mkdir build
cd build
cmake ../src
make -j
安裝VS Code
此處使用 Visual Studio Code 1.20.1
file -> preferences -> settings (User Settings)
{
"python.pythonPath":"/home/cvr/.pyenv/shims/python"
}
按下 Ctrl+Shift+P 打「task」找出 Tasks: Configure Default Build Task,修改tasks.json 的內容
(task.json)
(task.json)
"command":"/home/cvr/.pyenv/shims/python"
點選左側第四個按鈕,設定python為Debug
執行Open3D 範例程式
在 ~/.bashrc 檔尾加入
export PYTHONPATH=$PYTHONPATH:/home/$USER/code/Open3D/build/lib
cp /home/cvr/code/Open3D/build/lib/Tutorial/Basic/rgbd_redwood.py ~/Desktop/
# Open3D: www.open3d.org
# The MIT License (MIT)
# See license file or visit www.open3d.org for details
import sys
sys.path.append("../..")
#conda install pillow matplotlib
from py3d import *
import matplotlib.pyplot as plt
if __name__ == "__main__":
print("Read Redwood dataset")
color_raw = read_image("/home/cvr/code/Open3D/build/lib/TestData/RGBD/color/00000.jpg")
depth_raw = read_image("/home/cvr/code/Open3D/build/lib/TestData/RGBD/depth/00000.png")
rgbd_image = create_rgbd_image_from_color_and_depth(
color_raw, depth_raw);
print(rgbd_image)
plt.subplot(1, 2, 1)
plt.title('Redwood grayscale image')
plt.imshow(rgbd_image.color)
plt.subplot(1, 2, 2)
plt.title('Redwood depth image')
plt.imshow(rgbd_image.depth)
plt.show()
pcd = create_point_cloud_from_rgbd_image(rgbd_image,
PinholeCameraIntrinsic.prime_sense_default)
# Flip it, otherwise the pointcloud will be upside down
pcd.transform([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]])
draw_geometries([pcd])
Jacky 我想请问下 我在cmake ../src 那步进行不下去了 说是Unknown CMake command "ADD_SOURCE_GROUP" 请问有什么办法可以解决吗
ReplyDeletegit clone https://github.com/IntelVCL/Open3D
scripts/install-deps-ubuntu.sh
mkdir build
cd build
cmake ../src
make -j