LoginSignup
1
0

ZED SDK point_cloudをplyファイルとして保存する

Last updated at Posted at 2024-03-11

想定する読者

stereolabsのzed2, zed mini, zed z などのステレオカメラの利用者
いまどきのステレオカメラは何ができるのかを知りたい人

前提

ZED SDK 4.0

ZED SDK が提供している方法

.py
point_cloud_to_save = sl.Mat()
zed.retrieve_measure(point_cloud_to_save, sl.MEASURE.XYZRGBA, sl.MEM.CPU)
err = point_cloud_to_save.write('Pointcloud.ply')

自前でply ファイルを保存する方法

ascii 形式で出力されたply ファイルを読んでみよう。
header 行のあとは、簡単なデータ形式になっているのがわかるだろう。
それを利用して自前で書くことも可能だ。

注意点:

  • zed.retrieve_measure(point_cloud_to_save, sl.MEASURE.XYZRGBA, sl.MEM.CPU)
    で取得したpoint_cloud_to_saveのデータの中には、有限でない値の座標を含んでいる。(すなわちnp.isfinite()を満たさない座標も含んでいるので、有限の値の座標だけを出力対象にすること。

自前でplyファイルを出力する場合には、forループを書くことになるので、遅くなりやすい。
標準で用意されているやり方で十分ならば、自前の処理をかかないこと。

point_cloud に影響する設定

  • fill_mode にするかどうか
  • カメラの解像度
  • sl.RESOLUTION
  • カメラの撮影条件各種(露出など)
  • sl.VIDEO_SETTINGS の各種項目
  • depth_modeの設定
1
0
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
0