Python_Open3D

全真互联网时代,需要大量的应用3D效果。在python中,利用Open3D包可以创建3D效果图。

首先pip install open3d下载安装包。下载要显示的.ply文件。

 PLY文件格式是Stanford大学开发的一套三维mesh模型数据格式,图形学领域内很多著名的模型数据,比如Stanford的三维扫描数据库(如本文用到的Bunny兔子),Geogia Tech的大型几何模型库,北卡(UNC)的电厂模型等,最初的模型都基于这个格式。

 三维模型建立在点的基础上,首先读取点云数据,创建一个基本的点云图。

import open3d as o3d
import numpy as np

#读点云数据
pcd = o3d.io.read_point_cloud(r"C:\Users\95378\Python2021\open3d_data\bunny10k.ply")
print(pcd)

o3d.visualization.draw_geometries([pcd],width=800,height=600)
#o3d.io.write_point_cloud(r"C:\Users\95378\Python2021\open3d_data\newbunny.pcd",pcd)

运行结果: 

 Python_Open3D_第1张图片

在法向量估计的基础上,可以生成一个清晰的三角片面。

import open3d as o3d
# import open3d_tutorial as o3dtut
import numpy as np

print("Open3D read Point Cloud")
pcd = o3d.io.read_triangle_mesh(r"C:\Users\95378\Python2021\open3d_data\bunny10k.ply")  #newrabbit.pcd")
print(pcd)
pcd.compute_vertex_normals()
pcdmesh = pcd.sample_points_poisson_disk(3000)
o3d.visualization.draw_geometries([pcdmesh],point_show_normal=True)

radii=[0.005, 0.01, 0.02, 0.04]

ballmesh = o3d.geometry.TriangleMesh.create_from_point_cloud_ball_pivoting(pcdmesh,o3d.utility.DoubleVector(radii))
print(ballmesh)
o3d.visualization.draw_geometries([ballmesh])

o3d.visualization.draw_geometries([pcd, ballmesh])

运行结果:

 Python_Open3D_第2张图片Python_Open3D_第3张图片

 还可以创建图形

mesh = o3d.geometry.TriangleMesh.create_sphere() #创建球体
mesh.compute_vertex_normals()
o3d.visualization.draw_geometries([mesh])
pcd = mesh.sample_points_uniformly(number_of_points=500)
o3d.visualization.draw_geometries([pcd])

运行结果:

Python_Open3D_第4张图片Python_Open3D_第5张图片

 

 

 

 

 

 

 

你可能感兴趣的:(python,计算机视觉,3d)