Created Date: 2020-02-02
このファイルを作成時点のバージョン: 0.9.0.0
Ubuntu において python3使用を想定
python -V
を実行させてみる。Anacondaが表示されなければUbuntu組み込みsudo
が必要な場合がある)conda install -c open3d-admin open3d
sudo apt update ; sudo apt upgrade
を予めしたほうが良い)python3 -m pip install open3d
注意: 上のインストールでは、Tutorial用のいろいろなファイルが用意されない。TestData.zipをダウンロードし、このOpen3D.htmlファイルと同じディレクトリの下でunzip -x TestData.zip
で展開する
ソースからのシステム構築
http://www.open3d.org/docs/release/compilation.html にあるように、Open3Dを発展させたいなどの要求がある場合、ソースコードからシステム構築をしたほうが良い。詳しくは先のページを参照のこと。
jupyter notebookによる可視化が0.4.0版から実験的についている。これを利用するのは node と npm (ともにNode.js)が必要である。
sudo apt install npm
を実行しておくとよい
import open3d
# もしくは(以下ではこちらの方が好まれる)
import open3d as o3d
2年ほど前まではpy3d
という名称であった
注意: Open3DのPython tutorial では、 numpy, matplotlib, opencvなどのモジュールを用いている。 ただしOpenCV は再構築システムとしてだけ使っている。用いているモジュールなど詳しくは scripts/install-deps-python.sh
を読むこと。
Python tutorialとテスト用のデータを一式コピーし、Open3D Pythonインタフェースの使い方について学ぶ。Open3D_examples.zipをダウンロードし、展開する。
以下はLinuxを想定しているが、WindowsやMacOSでも同様にできる。ただしopen3dがpythonでimportできることが前提。
Open3D_examples.zip
を展開したディレクトリを作業ディレクトリとしたところで、以下を実行する
cd examples/Python/Basic
python rgbd_redwood.py
これは一対のRGB-D画像を読み込み、視覚化するプログラムである。この rgbd_redwood.pyのソースを示す。またこれをJupyter notebookで実行するには以下を実行しておくと良い:
import os
os.chdir('/home/sirai/Open3D/examples/Python/Basic')
%matplotlib inline
# Open3D: www.open3d.org
# The MIT License (MIT)
# See license file or visit www.open3d.org for details
# examples/Python/Basic/rgbd_redwood.py
import open3d as o3d
import matplotlib.pyplot as plt
if __name__ == "__main__":
print("Read Redwood dataset")
color_raw = o3d.io.read_image("../../TestData/RGBD/color/00000.jpg")
depth_raw = o3d.io.read_image("../../TestData/RGBD/depth/00000.png")
rgbd_image = o3d.geometry.RGBDImage.create_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 = o3d.geometry.PointCloud.create_from_rgbd_image(
rgbd_image,
o3d.camera.PinholeCameraIntrinsic(
o3d.camera.PinholeCameraIntrinsicParameters.PrimeSenseDefault))
# 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]])
o3d.visualization.draw_geometries([pcd])
これはRGB-D画像をポイントクラウドに変換し、Open3D可視化プログラムでレンダリングする:
このPythonのコードは極めて簡単であり、詳しい説明は Redwood データセットにあるので参照のこと。Tutorialにはこれ以外にいろいろなものが試せるので参照のこと。
ソースからのシステム構築、文書作成、Open3Dへの貢献、については本稿では省略する。関心のあるかたはOpen3D.orgを参照されたい