色付き点群の可視化

スカラ値による濃淡ではなく、RGB値によるフルカラー表示を行う際は、RGB各値を3成分のUnsigned Char型ベクトル値として定義する必要がある。CSVなどのテーブル形式データからTable To Pointsフィルタで点群化した色付き点群は、通常RGB値がそれぞれInt型スカラ値として独立しているため、以下のコードによりRGB値を変換・結合することでフルカラー表示を実現する。

Programmable Filter適用後、Object Inspector上のPropertiesタブにて‘Map Scalars’のチェックを外す。

動作確認バージョン

ParaView 4.2.0

Output Data Set Type

vtkPolyData

Script

pdi = self.GetInput()
pdo = self.GetOutput()

c = vtk.vtkUnsignedCharArray()
c.SetName('Colors')
c.SetNumberOfComponents(3)
c.SetNumberOfTuples(pdi.GetNumberOfPoints())

r = pdi.GetPointData().GetArray(0)
g = pdi.GetPointData().GetArray(1)
b = pdi.GetPointData().GetArray(2)
for i in range(pdi.GetNumberOfPoints()):
    c.SetTuple3(i, r.GetValue(i), g.GetValue(i), b.GetValue(i))

pdo.GetPointData().AddArray(c)
タグ: , , , , , , , , , , ,

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*