点云固定赋色(附open3d python代码)

通过代码给点云赋固定一个颜色

 

# coding:utf-8
import numpy as np
import open3d as o3d

print("->正在加载点云... ")
cloud = o3d.io.read_point_cloud("kitti_p.pcd")
print(cloud)

print("->正在点云赋色...")
cloud.paint_uniform_color([1,0.706,0])
print("->正在可视化赋色后的点云...")
o3d.visualization.draw_geometries([cloud], window_name="wechat 394467238 ")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是使用Open3D库进行点云数据处理的Python代码示例: 1. 加载点云数据 ``` import open3d as o3d # 加载点云数据 pcd = o3d.io.read_point_cloud("point_cloud.pcd") ``` 2. 可视化点云数据 ``` # 可视化点云数据 o3d.visualization.draw_geometries([pcd]) ``` 3. 点云数据下采样 ``` # 点云数据下采样 downpcd = pcd.voxel_down_sample(voxel_size=0.05) ``` 4. 点云数据变换 ``` # 点云数据变换 import numpy as np # 定义变换矩阵 transformation = np.array([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) # 将点云数据进行变换 pcd.transform(transformation) ``` 5. 点云数据平移 ``` # 点云数据平移 pcd.translate([1.0, 2.0, 3.0]) ``` 6. 点云数据旋转 ``` # 点云数据旋转 import math # 定义旋转矩阵 rotation_matrix = np.array([[math.cos(math.pi/4), -math.sin(math.pi/4), 0, 0], [math.sin(math.pi/4), math.cos(math.pi/4), 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) # 将点云数据进行旋转 pcd.rotate(rotation_matrix) ``` 7. 点云数据滤波 ``` # 点云数据滤波 import open3d as o3d # 加载点云数据 pcd = o3d.io.read_point_cloud("point_cloud.pcd") # 定义滤波器 voxel_down_pcd = pcd.voxel_down_sample(voxel_size=0.05) radius_normal = 0.1 max_nn_normal = 30 pcd.normals = o3d.geometry.estimate_normals(voxel_down_pcd, search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=radius_normal, max_nn=max_nn_normal)) radius_feature = 0.1 max_nn_feature = 30 fpfh = o3d.registration.compute_fpfh_feature(voxel_down_pcd, o3d.geometry.KDTreeSearchParamHybrid(radius=radius_feature, max_nn=max_nn_feature)) pcd_fpfh = o3d.pipelines.registration.compute_fpfh_feature(pcd, o3d.geometry.KDTreeSearchParamHybrid(radius=radius_feature, max_nn=max_nn_feature)) # 进行滤波 radius_normal = 0.1 pcd = pcd.select_by_index(o3d.geometry.radius_outlier_removal(pcd, nb_points=16, radius=radius_normal)[1]) ``` 8. 点云数据配准 ``` # 点云数据配准 import open3d as o3d # 加载点云数据 source = o3d.io.read_point_cloud("source.pcd") target = o3d.io.read_point_cloud("target.pcd") # 定义初始变换矩阵 trans_init = np.asarray([[1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,1]]) # 使用ICP算法进行配准 reg_p2p = o3d.pipelines.registration.registration_icp(source, target, 0.02, trans_init, o3d.pipelines.registration.TransformationEstimationPointToPoint(), o3d.pipelines.registration.ICPConvergenceCriteria(max_iteration=2000)) # 输出变换矩阵 print(reg_p2p.transformation) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点云-激光雷达-Slam-三维牙齿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值