LoginSignup
1
2

More than 3 years have passed since last update.

Macでpyrealsense2をインポートしてRealsenseを動かす

Last updated at Posted at 2021-04-28

RealsenseをPythonで動かす際に必要なライブラリであるpyrealsense2をインポートするまでの手順を解説します

使用機器

Realsense D435
MacBook Pro

環境構築

ライブラリのインストール

$ brew install libusb pkg-config
$ brew install homebrew/core/glfw3
$ brew install cmake

Realsenseのレポジトリからクローン

$ git clone https://github.com/IntelRealSense/librealsense.git 
$ cd librealsense

Make

$ mkdir build
$ cd build
$ cmake .. -DBUILD_EXAMPLES=true -DBUILD_WITH_OPENMP=false -DHWM_OVER_XU=false -DBUILD_PYTHON_BINDINGS=true -DPYTHON_EXECUTABLE:FILEPATH=/Users/python3 -G "Unix Makefiles"
$ make -j4
$ sudo make install

cmake -DPYTHON_EXECUTABLE:FILEPATH=/Users/python3
/Users/python3
$ which python3
で表示されるパスに変更してください.

make が完了するとbuild/wrappers/python ディレクトリ内に
pyrealsense2.cpython-〇〇m-darwin.so と pybackend2.cpython-〇〇m-darwin.so
というファイルが作成されていると思います.
ただし,cpython-〇〇m-darwin の〇〇は環境によって変わります.

インポートの対象ディレクトリの確認

pyrealsense2をインポートできるようにするには,先ほど生成した
pyrealsense2.cpython-〇〇m-darwin.so と pybackend2.cpython-〇〇m-darwin.so
をインポート対象のディレクトリ内に追加する必要があります.

シンボリックリンクの作成

$ cd /usr/local/lib/python3.6/site-packages
$ ln -s ~/librealsense/build/wrappers/python/pyrealsense2.cpython-36m-darwin.so pyrealsense2.so
$ ln -s ~/librealsense/build/wrappers/python/pybackend2.cpython-36m-darwin.so pybackend2.so

cd /usr/local/lib/python3.6/site-packages はインポート対象のディレクトリの一覧で表示されたディレクトリのどれかにしてください

インポート対象のディレクトリの一覧は次の方法で確かめられます.

$ python3
>>> import sys
>>> print(sys.path)

また,ln -s ~/librealsense/... の~/の部分はlibrealsenseのパスが通るように変更して下さい.
ホームディレクトリ直下にlibrealsenseがある場合は~/のままで構いません.

インポートの確認

$ python3
>>> import pyrealsense2
>>>

pyrealsense2がエラーなくimportできれば完了です.

サンプルコード

確認用にpyrealsense2を用いた簡単なコードを記載しておきます.
Realsenseで撮影したRGB画像と深度画像をリアルタイムで表示します.

opencv_viewer_example.py
import numpy as np
import cv2
import pyrealsense2 as rs

# ストリーム(Color/Depth)の設定
config = rs.config()
config.enable_stream(rs.stream.color, 640, 360, rs.format.bgr8, 30)
config.enable_stream(rs.stream.depth, 640, 360, rs.format.z16, 30)

# ストリーミング開始
pipeline = rs.pipeline()
profile = pipeline.start(config)

try:
    while True:
        # フレーム待ち(Color & Depth)
        frames = pipeline.wait_for_frames()
        color_frame = frames.get_color_frame()
        depth_frame = frames.get_depth_frame()
        if not depth_frame or not color_frame:
            continue
        color_image = np.asanyarray(color_frame.get_data())
        # Depth画像
        depth_color_frame = rs.colorizer().colorize(depth_frame)
        depth_color_image = np.asanyarray(depth_color_frame.get_data())

        # 表示
        images = np.hstack((color_image, depth_color_image))
        cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)
        cv2.imshow('RealSense', images)
        if cv2.waitKey(1) & 0xff == 27: # Escキーで終了
            break

finally:
    # ストリーミング停止
    pipeline.stop()
    cv2.destroyAllWindows()


参考

Mac に pyrealsense2 をインストールする

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2