코드를 살펴보기 전, bounding volumes에 대한 이해부터 필요할 것 같아 bounding volumes이 무엇인지, 어떤 형태들이 존재하는지를 찾아보았다.
open3d의 Bounding Volumes은 포인트 클라우드나 메쉬와 같은 3D 데이터의 공간적 경계를 나타내는 기하학적 형태로, 3D 데이터를 포함하는 최소한의 공간을 정의하고 다양한 분석과 계산에서 효율성을 높이는 데 사용된다. open3d에서는 주로 Axis-Aligned Bounding Box (AABB)와 Oriented Bounding Box (OBB) 2 가지 형태를 지원한다.
1. Axis-Aligned Bounding Box (AABB)
2. Oriented Bounding Box (OBB)
bounding volumes의 활용
import open3d as o3d
demo_crop_data = o3d.data.DemoCropPointCloud()
pcd = o3d.io.read_point_cloud(demo_crop_data.point_cloud_path)
vol = o3d.visualization.read_selection_polygon_volume(demo_crop_data.cropped_json_path)
chair = vol.crop_point_cloud(pcd)
aabb = chair.get_axis_aligned_bounding_box()
aabb.color = (1, 0, 0)
obb = chair.get_oriented_bounding_box()
obb.color = (0, 1, 0)
o3d.visualization.draw_geometries(
[chair, aabb, obb],
zoom=0.7,
front=[0.5439, -0.2333, -0.8060],
lookat=[2.4615, 2.1331, 1.338],
up=[-0.1781, -0.9708, 0.1608]
)
[Open3D Tutorial] convex hull (0) | 2024.08.14 |
---|---|
[Open3D Tutorial] point cloud distance (0) | 2024.08.13 |
[Open3D Tutorial] vertex normal estimation (0) | 2024.08.12 |
[Open3D Tutorial] voxel downsampling (0) | 2024.08.12 |
[Open3D Tutorial] visualize point cloud (0) | 2024.08.12 |