无法加载点云文件-Failed to find one unique scanner


【问题描述】在iTwincapture中加载点云文件时,弹出如下截图报错:Failed to find one unique scanner,导致加载失败。

【原因分析】对于大型的三维扫描场景,通常需要使用点云扫描设备在不同位置执行多次扫描任务,从而生成包含整个区域的点云文件。每个点云文件都会关联对应的扫描仪位置坐标信息。在实际应用中,用户往往会对这些分片扫描数据进行融合处理。根据数据融合方式的不同,在理想情况下,融合后的整合文件仍能完整保留原始扫描仪的位置坐标信息。这种情况下,导入iTwinCapture文件时可以跳过「指定扫描仪位置」的界面,让软件自行读取和加载。最终用户可在三维视图中直观查看所有扫描站位(如截图所示)

 

但是,如果融合时,忽略了扫描仪的位置坐标信息,那么就需要Define Scanner Location,此时如果选择了软件自动计算,即下图中的选项,那么软件就会报文章起始部分的错误,因为扫描仪的位置信息不止一个。

【解决方法】这里需要手动测量一下,整个点云区域的中心点大致的坐标信息,以此作为扫描仪的位置坐标,并通过手动指定的方式,输入到上述截图的XYZ值中。具体方法如下:

1. 使用MicroStation或Descartes等软件,新建一个空白的3维DGN文件,主单位设置为米。然后在软件的右上角检索Point Clouds,打开对应工具,File>Attach 加载点云文件。MicroStation是不关心扫描仪位置的,可以直接导入。导入过程中会提示另存为POD格式,可以点击确定然后继续加载。POD是Bentley固有的点云格式,它不会更改原始文件和原始文件的点云位置。加载完成后点击【全局显示-Fit View】按钮,可以看到文件已经加载进来。 

2. 使用MicroStation的画线工具,连接点云上边框的对角线,然后使用【交点捕捉】模式,捕捉到两个对角线的交叉点,同时点击鼠标左右键,进行试探捕捉,可以看到下方的消息框中会显示XYZ坐标信息。我们记录一下这个坐标信息。请注意,捕捉到区域的正中心是比较困难的,因为模型本身可能是不规则的,此处我们只需要大致保证是模型的中心区域即可。

3. 回到iTwinCapture,在输入扫描仪位置的页面,选择手动方式,输入XYZ的值;其中X和Y值和MicroStation中获取的保持一致,Z值需要高很多,这样做可以使得当前文件中的所有点云的法线方向尽可能保持垂直的状态,保证方向相近,从而顺利导入到iTwinCapture中。
 

4. 继续点击Import进行导入即可。