2022年9月19日月曜日

3次元点群データのBlenderプロット

 Blender plot of 3D point cloud data


I learned how to create 3D position information data of excavated artifacts and plot the 3D point cloud data in Blender. Spatial analysis of excavated relics from the shell layer on the northern slope of the Ariyoshi Kita Shell Mound is likely to progress.


出土遺物の3次元位置情報データを作成し、その3次元点群データをBlenderにプロットする方法を知りました。有吉北貝塚北斜面貝層の出土遺物空間分析が捗りそうです。

有吉北貝塚北斜面貝層の3D空間分析の基礎技術となる、3次元点群データのBlenderプロット方法をメモします。

1 3次元点群データのBlenderプロット方法

次のwebページ掲載方法をそのまま使わさせていただくことにします。


点群データをBlenderにインポートするスクリプト

このwebページでは次のような点群データ(テキストファイル)をBlenderにプロットするPythonスクリプトを掲載しています。


点群データ(テキストファイル)

次のPythonスクリプトを、テキストファイルパスを調整してから、Blenderのテキストエディターにコピペして「スクリプト実行」すると点群データがBlenderにプロットされます。

……………………………………………………………………

#Blender 2.80 beta

#点群データをBlenderにインポート

#実行時は必ずオブジェクトモードにしておく


import bpy


#テキストファイルを指定

TextFilePath = 'C:/data/sagyo/xyzdata.txt'


#頂点数取得

print('Loading Text File')

fp = open(TextFilePath)

Count = 1

line = fp.readline()

while line:

    line = fp.readline().replace('\n', '')

    Count += 1

fp.close()


#オブジェクト作成

print('Creating Object')

bpy.data.meshes.new(name='ImportMesh')

bpy.data.objects.new(name='ImportObj', object_data=bpy.data.meshes['ImportMesh'])

bpy.context.scene.collection.objects.link(bpy.data.objects['ImportObj'])

Obj = bpy.data.objects['ImportObj'].data

Obj.vertices.add(Count)


#頂点の移動

i = 0

fp = open(TextFilePath)

line = fp.readline()

while line:

    dat = line.split(',')

    X = float(dat[1])

    Y = float(dat[2])

    Z = float(dat[3])

    Obj.vertices[i].co.x = X

    Obj.vertices[i].co.y = Y

    Obj.vertices[i].co.z = Z

    line = fp.readline().replace('\n', '')

    if i % 10000 == 0:

        print(i)

    i += 1

fp.close()


print('Finished : ' + str(i-1) + 'verts')

……………………………………………………………………

http://kutodatabase.com/kuto1970.shop/Works_ImportVerts.htmlから引用


点群データプロットの様子(Blender画面)

この画面では点群データを分離して各個データとして扱えるようにした様子を示しています。

分離した各個データは移動ができます。

点群データはBlenderのデフォルト機能では大きさの拡大、色塗りは出来ないようです。


点群データプロットの様子 拡大

2 点群データの作成

これまで個別土器片出土位置の3D空間における把握はillustratorを使った図学的方法で行っていました。


illustratorをつかった図学的方法による個別土器片出土位置の3D認識

これからはBlenderの3Dカーソル位置から、X座標値、Y座標値、Z座標値で扱い、分析することにします。


個別土器片出土位置の3D空間座標値獲得方法

この方法で獲得したXYZ座標値を使い、土器片をBlenderの3D空間にプロットすることにより、貝層断面図との対応を3D空間で観察することができるようになります。

あるいは土器片と石器や骨角器の3D空間における分布関連性を観察できるようになります。

3 メモ

有吉北貝塚北斜面貝層から出土した遺物の3D空間分布を座標により扱うことが出来る基礎技術を獲得できました。この技術を十分に咀嚼できれば、次の技術課題は出土遺物と貝層分類(純貝層、混土貝層、混貝土層など)等との対応分析の自動化になります。


0 件のコメント:

コメントを投稿