CloudCompare点云配准基本操作

CloudCompare基本介绍

官方网站
https://cloudcompare.org/
官方文档
https://cloudcompare.org/doc/qCC/CloudCompare%20v2.6.1%20-%20User%20manual.pdf

文章目录

  • CloudCompare基本介绍
  • CloudCompare基本技巧
    • 点云数据读入
    • 点云对象的颜色设置
    • 点云对象的拖动,旋转
  • CloudCompare点云配准流程
    • 粗配准
    • 精配准

CloudCompare基本技巧

点云数据读入

由于本人主要从事图像处理方面的工作,平时一般使用tif格式的数据。但CloudCompare软件对于tif格式的不能直接读入,因此暂且使用txt格式文件对数据进行转换写入。

转换的代码也很简单,这里贴上本人的python代码:

import os
import numpy as np
import SimpleITK as sitk
from skimage import io

if __name__ =="__main__":
	# file name
    name = "tif_file"
    # resolution setting
    resolution = [1, 1, 4]

    path = name + ".tif"
    # read file
    label_volum = io.imread(path)
    # find meshes
    label_pts = np.argwhere(label_volum == 1)
    with open(name + ".txt","w") as f:
        for pt_index in range(label_pts.shape[0]):
            # x, y, z
            f.write("%d %d %d\r\n"%(label_pts[pt_index, 2] * resolution[-3], 
            label_pts[pt_index, 1] * resolution[-2], 
            label_pts[pt_index, 0] * resolution[-1]))
    print("OK")

转换后会有同名的txt文件出现,将其拖入CloudCompare中,即可完成读入工作。

点云对象的颜色设置

上一步骤我们将两个点云文件拖入软件中,两个点云文件是microCT图像的血管分割图,一个是全局分割,一个是局部分割。由于软件默认点云对象是白色,且两者坐标一致,因此难以区分。这里可以采用不同的颜色设置,进行区分
颜色设置首先选择其中一个对象

选择Edit->Color->set unique对单一对象设置颜色。

对两个对象分别设置红色与绿色

点云对象的拖动,旋转

左键:整体点云对象的旋转
右键:整体点云对象的平移
滚轮:整体点云对象的缩放
单一对象的操作需要先选中对象
选择Edit->Translate/Rotate

出现右上角小窗口后即可对单一目标使用左右键进行平移旋转操作

变换完成后,点击右上角的小勾即可。

CloudCompare点云配准流程

粗配准

Registration > Align (point pairs picking)
用户手册p102

这里根据手册上进行简要说明一下
选中两个对象,选择Align

选择被匹配对象

在两个点云对象之间选择对应的三个及以上的点,可以放大视图进行选择,点最好分散一点。

选择完成后点击图片中的“Align”按钮,即可进行手动粗配。
点击小勾即可输出变换矩阵。可以看出,效果尚可。
高级参数adjust scale可以确定两个点集之间的最佳比例因子。要允许优化比例参数,只需取消选中固定比例复选框。如果两个云具有不同的比例,而你不知道它们之间的比例因子,则这非常有用。警告:如果比例系数不同,完成此工具后得到的是4×4的仿射矩阵。这样的话使用该矩阵的逆就无法将点云恢复到未配准之前的状态。

参考链接:https://blog.csdn.net/qq_36686437/article/details/119966436

精配准

点击ICP

注意局部与整体配准时,一定要选好to-be-aligned与reference对象,两者互换可以点击swap按钮。

Number of iterations/RMS difference:ICP是一个迭代过程。在此过程中,配准误差(缓慢)减少。我们可以告诉CC在最大迭代次数后停止此过程,或者在两次迭代之间的误差(RMS)差低于给定阈值时停止此过程。该阈值越小,收敛所需的时间越长,但结果应该越精细(注意:由于CC使用32位浮点值,1e-8阈值已经接近计算精度极限,因此不必再降低)。
Final overlap:设置待配准点云之间的重叠度。
Adjust scale:如果待配准的两个点云尺寸不一致,可以选上该选项。


Random sampling limit:为了大幅度提高计算速度,CC使用了一种优化方案。它包括在每次迭代时对数据云进行随机子采样。此参数是子采样点的最大数量。默认值(50000)通常是一个很好的猜测,其对结果的影响是不可感知的。然而,对于数据量非常大的点云来说,它可能是不够的。因此,如果您对结果有疑问,或者如果您想进一步精细化配准,并且不害怕等待很长时间,请毫不犹豫地增加此值(要完全停用此优化方案,只需输入一个大于点云点数的数字即可)。
Rotation:增加指定轴(X、Y或Z)旋转约束。
Translation:增加平移方向的约束。
Enable farthest point removal:剔除距离较远的点,对于噪声点有一定的抑制性。
Use displayed model/data scalar field as weights:此选项应允许用户使用标量值作为权重(主要用于点云与模型的配准,不建议用于两个点云的配准。)

点击OK,得到最终精配结果

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年4月5日
下一篇 2023年4月5日

相关推荐