open3dでcolorを調整する

実現したいこと

点群を表示させるときに任意の点群のみに色を変更させて表示させたい
例えばある点において任意の距離以下にある点群のみ,色を青にして,他の点群の色を赤にすることでわかりやすく表示したい.

前提

open3d: version 0.16.0

発生している問題

pcd.colorを定義しても色を調整できない

該当のソースコード

python

1import open3d as o3d 2import numpy as np 3 4# 点群の作成5pcd = o3d.geometry.PointCloud()6x = np.arange(0, 49)7y = np.arange(0, 49)8z = np.arange(0, 49)9xx, yy, zz = np.meshgrid(x, y, z, indexing='xy')10result = np.vstack((xx.flatten(), yy.flatten(), zz.flatten())).T 11pcd.points = o3d.utility.Vector3dVector(result)12 13#一色のみにする14colors = []15for _ in range(50):16 colors.append([100, 100, 100])17 18# 色情報を含んだPointColorクラスを作成19point_colors = o3d.utility.Vector3dVector(colors)20 21# 点群に色情報をセット22pcd.colors = point_colors 23 24# 可視化25o3d.visualization.draw_geometries([pcd])

結果

イメージ説明

試したこと

colorsの値を点ごとに変化させてみた

python

1 line = np.linspace(0, 50, 51, dtype=np.float64)2 colors = []3 for x in line:4 for y in line:5 for z in line:6 colors.append([z/10, y/10, z/10])

colors.append([z/10, y/10, z/10])の部分を10→50にしても結果は変わらなかった.
colorを調整することができない.

コメントを投稿

0 コメント