当前位置: 首页 > news >正文

六盘水网站建设提升网站建设品质信息

六盘水网站建设,提升网站建设品质信息,网站建设质量保证,长春火车站停车场收费标准1.首先需要安装相应的cloudcompare软件,以下有两种方式:第一种直接在ubuntu的软件商店里搜索CloudCompare软件进行install,我这里已经安装完毕。 方式二:可以直接原码安装: github地址: https://github.co…

1.首先需要安装相应的cloudcompare软件,以下有两种方式:第一种直接在ubuntu的软件商店里搜索CloudCompare软件进行install,我这里已经安装完毕。

方式二:可以直接原码安装:

github地址: https://github.com/CloudCompare/CloudCompare.git

 

 

  1. git clone    https://github.com/CloudCompare/CloudCompare.git

  2. cd CloudCompare

  3. cmake .. -DCMAKE_BUILD_TYPE=Rlease -DPLUGIN_STANDARD_QPCL=ON #这里确保能打开pcd

  4. make -j 8

  5. sudo make install

  6. sudo apt install cloudcompare

2.打开之后软件的界面如下所示:

 

3.关于软件的基本操作,比如打开保存,以及点云的颜色大小,这里我们只了解关于点云配准和拼接的基本功能,详细的功能大家可以自己去摸索摸索。由于我是第一种安装,打开pcd只能靠拖动pcd文件到这个界面,比如:

4.之后可以在点云属性下调整点云的大小,以及在edit -colors-set unique中设置相应的颜色,然后在如下左下角的点云属性中选择pointsize,根据需要选择大小,点云属性框里设置点云的大小:

 5.设置完之后调整一下相应的视角:

6.然后选中两个点云,点击如下工具,之后点击yes,一个基准点云,开始手动选择特征点

7.选完之后点击alian会自动根据当前选择的特征点进行匹配, 点击reset可以取消当前配准,之后点对号可以生成相应的旋转平移矩阵,大家可以alian一下后看实际的配准效果,不行的话可以删除偏离较大的点,就是点对应点A0,R0后面的叉号:

8. 之后点击ok会在console,也就是最下面生成更为准确的结果:

9.后续可以利用之前的多尺度icp程序在此旋转矩阵上进行更为精准的旋转平移矩阵的生成。

import open3d as o3d
import numpy as npdef load_point_cloud(file_path):"""加载 .pcd 格式的点云文件"""point_cloud = o3d.io.read_point_cloud(file_path)if point_cloud.is_empty():raise ValueError(f"点云文件 {file_path} 为空或加载失败。")return point_clouddef preprocess_point_cloud(pcd, voxel_size):"""预处理点云以加速配准。参数:- pcd: 输入的点云- voxel_size: 体素化大小,用于法向量估计返回:- 体素化并估计法向量后的点云"""pcd = pcd.voxel_down_sample(voxel_size)pcd.estimate_normals(o3d.geometry.KDTreeSearchParamHybrid(radius=voxel_size * 2, max_nn=30))return pcddef apply_icp(source, target, threshold=0.02, init_transformation=None, use_point_to_plane=False):"""使用 ICP 进行点云配准。参数:- source: 源点云 (o3d.geometry.PointCloud)- target: 目标点云 (o3d.geometry.PointCloud)- threshold: 配准的距离阈值- init_transformation: 初始对齐矩阵 (4x4)- use_point_to_plane: 是否使用点到平面 ICP 方法 (默认 False)返回:- 精确配准后的变换矩阵 (4x4)"""print("运行 ICP 配准...")# 选择 ICP 估计方法:点到点或点到平面estimation_method = o3d.pipelines.registration.TransformationEstimationPointToPoint()if use_point_to_plane:estimation_method = o3d.pipelines.registration.TransformationEstimationPointToPlane()# 多尺度 ICP 配准max_iterations = [60, 30, 10]  # 多尺度迭代次数thresholds = [threshold * 5, threshold * 2, threshold]  # 多尺度阈值transformation = init_transformationfor scale, max_iter, th in zip([5, 2, 1], max_iterations, thresholds):print(f"Scale {scale}: 距离阈值 = {th}, 最大迭代次数 = {max_iter}")reg_p2p = o3d.pipelines.registration.registration_icp(source, target, th, transformation, estimation_method,o3d.pipelines.registration.ICPConvergenceCriteria(max_iteration=max_iter))transformation = reg_p2p.transformationprint(f"Scale {scale} 结果变换矩阵:\n", transformation)return transformationdef main():# 加载点云文件 (替换为实际路径)source_pcd_file = "/home/xsl/Music/truck_ws/src/Truck_perception/tool/1.pcd"  # 源点云文件路径target_pcd_file = "/home/xsl/Music/truck_ws/src/Truck_perception/tool/2.pcd"  # 目标点云文件路径source_cloud = load_point_cloud(source_pcd_file)target_cloud = load_point_cloud(target_pcd_file)# 预处理点云以估计法向量voxel_size = 0.2  # 根据点云密度调整体素大小source_cloud = preprocess_point_cloud(source_cloud, voxel_size)target_cloud = preprocess_point_cloud(target_cloud, voxel_size)# 可视化初始状态print("初始点云对齐可视化")o3d.visualization.draw_geometries([source_cloud.paint_uniform_color([1, 0, 0]), target_cloud.paint_uniform_color([0, 1, 0])])# 初始变换矩阵initial_transformation = np.array([[0.319, 0.947,  0.016, 5.343],[-0.948,  0.319,  0.004,  9.281],[-0.001, -0.017,  1, -0.296],[0,  0,  0,  1]])# ICP 配准transformation_matrix = apply_icp(source_cloud, target_cloud, threshold=0.5, init_transformation=initial_transformation, use_point_to_plane=True)# 将源点云变换到目标点云坐标系source_cloud.transform(transformation_matrix)# 可视化配准结果print("配准结果可视化")o3d.visualization.draw_geometries([source_cloud.paint_uniform_color([1, 0, 0]), target_cloud.paint_uniform_color([0, 1, 0])])# 保存结果np.savetxt("Rotation translation matrix.txt", transformation_matrix, fmt="%.6f")print("外参矩阵已保存到 Rotation translation matrix.txt") if __name__ == "__main__":main()

10.别忘了更改实际的pcd文件地址,相应的初始变换矩阵就是8生成最终的旋转平移矩阵以及最终的对其效果:

11.点云配准结束,关于点云配准的其它更多详细操作,建议参考一下博客:CloudCompare——实现点云由粗到精的配准【2024最新版】_点云粗配准-CSDN博客

http://www.yayakq.cn/news/689430/

相关文章:

  • 网站功能设计怎么写网站开发选定制还是模板
  • 男科是去私立还是公立seo服务商
  • e盘网站建设哪些做海报比较好的网站
  • 成都专业的网站建设制作公司哪家好网站不能自行备案吗
  • 建设部网站资质查询深圳外贸网站怎么建
  • WordPress网站生成小程序外国做图网站
  • 嘉兴网站搜索排名站长工具seo综合查询关键词
  • 湛江网站建设团队学电脑哪家好
  • 深圳网站建设高端软件开发好学吗
  • 多用户网站制作网站建设科技公司外部环境分析
  • 天津建设银行公积金缴费网站唐山官方网站建设
  • 吴忠住房和城乡建设网站平面设计考研科目
  • 南昌 提供网站设计 公司英文网站设计理念
  • 专业的网站开发联系方式建设一个公司网站多少钱
  • 门户类网站开发多少钱网站百度流量怎么做
  • 用discuz做门户网站旅游的便宜的网站建设
  • 网站备案每年一次pinfinity wordpress主题
  • 国家建设标准发布网站在哪里网站订单系统模板
  • 汉阳网站推广公司软考高级
  • 上海的加盟网站建设阳江一中启业网
  • 自建网站的好处wordpress安装不能选择语言
  • 网站线框图软件seo关键词找29火星软件
  • 怎么在百度上搜到自己的网站wordpress设置推荐没到主页
  • 太原好的网站制作排名中小企业网络组网案例
  • 嘉兴提高网站排名wordpress 菜单 锚点
  • 如何选择网站建设流程做音乐网站要注意什么
  • 用vs2005做网站 怎样搭配色彩仿网站后台怎么做
  • 网站的宣传与推广google引擎入口
  • 网站页尾的作用网站建设 青海
  • php做网站怎么样公司图片logo