見出し画像

PythonでStanford Bunnyさわってみる。

まず、stanford bunnyとは、スタンフォード大学で3Dスキャンされたうさぎの陶器のデータです。CGの簡単なモデルとしてよく見かけたりします。今回は、このstanford bunny をnumpy配列に変換して、pyplotで描画してみます。

stanford bunny は、以下のサイトからダウンロードできます(「stanford bunny」で検索したらすぐ出てきます)。

まず必要なものをimport します。
open3dがなければ、これはpipからインストールできます。

import numpy as np
import open3d as o3d
from matplotlib import pyplot as plt

次にPLYファイルからデータをロードします。
fにダウンロードしてきたデータのパスを入れて、可視化してみます。

f = "bunny/data/bun000.ply"

pcd = o3d.io.read_point_cloud(f)
o3d.visualization.draw_geometries([pcd])                                  

ここまで実行すると、下のような形で点群データとして見ることができます。

スクリーンショット 2021-04-19 22.22.39

しかし、データとして使うならnumpy配列にしたほうが扱いやすいと思うので、numpy配列に変換してしまいます。

xyz = np.asarray(pcd.points)
print(xyz.shape)

fig = plt.figure()
ax = fig.add_subplot(111, projection = "3d")
x = xyz[:,2]
y = xyz[:,0]
z = xyz[:,1]

ax.scatter(x, y, z, alpha = .008, c = "black", edgecolors = "black")
ax.view_init(elev = 20, azim = 20)
plt.tick_params(labelbottom= False, 
                labelleft  = False, 
                labelright = False, 
                labeltop.  = False)
plt.tick_params(color='none')
plt.show()

ここで、ax.view_init()で視点を変更することができ、 elev はz軸方向の視点、azimはxy方向の視点の回転を変更することができます。

画像2

画像4

画像3

画像5

画像6

画像7

参考サイトなど



この記事が気に入ったらサポートをしてみませんか?