【问题标题】:meshlab align - data on the distance and angle moved?meshlab align - 有关移动距离和角度的数据?
【发布时间】:2022-02-27 04:09:37
【问题描述】:

我有 2 组模型数据(eash 集是一个 stl 网格、草图点、igs 表面),它们已在 Fusion 中加载。 我可以在 MeshLab 中加载 2 个 stl 文件并对齐它们。 如何在对齐期间找到有关移动的数据,以便我可以将相同的移动应用到 Fusion 中的其他部分?

【问题讨论】:

    标签: meshlab


    【解决方案1】:

    您想查看每个网格的当前变换矩阵的值。

    首先,避免在对齐网格时使用过滤器或标记名为“冻结当前矩阵”的标志,因为这会将变换应用于顶点坐标并将矩阵重置为单位,所以你松开它。

    查看矩阵的最简单方法是使用“文件 -> 保存项目”菜单选项。这将创建一个扩展名为“.mlp”的 XML 格式的文件。这意味着您可以使用任何文本编辑器打开它(有时您希望将扩展名更改为 .txt)并查看这些值。文件中的每个网格都将具有输入网格的文件名和如下矩阵:

    <!DOCTYPE MeshLabDocument>
    <MeshLabProject>
     <MeshGroup>
      <MLMesh filename="MeshedReconstruction1.ply" label="MeshedReconstruction1.ply">
       <MLMatrix44>
    1 0 0 0 
    0 1 0 0 
    0 0 1 0 
    0 0 0 1 
    </MLMatrix44>
      </MLMesh>
     </MeshGroup>
     <RasterGroup>
      <MLRaster label="examplePic1.png">
       <VCGCamera RotationMatrix="0.999683 0.0245459 0.00566618 0 -0.0245495 0.999699 0.000560548 0 -0.00565071 -0.000699472 0.999984 0 0 0 0 1 " CenterPx="960 540" ViewportPx="1920 1080" TranslationVector="-0.0273756 0.00583069 -0.398988 1" FocalMm="46.0408" LensDistortion="0 0" PixelSizeMm="0.0317889 0.0317889" CameraType="0"/>
       <Plane semantic="1" fileName="examplePic1.png"/>
      </MLRaster>
     </RasterGroup>
    </MeshLabProject>
    

    您想要 MLMatrix44 标签之间的矩阵。它包含有关应用于每个网格的平移、旋转和缩放的所有信息。

    【讨论】:

    • 感谢您的指点。现在我有第二个模型(移动的那个)的数据,如下所示:&lt;MLMatrix44&gt;0.963472 -0.00908632 -0.267656 -17.00820.00905033 0.999958 -0.0013682 -5.295570.267657 -0.00110416 0.963514 1.297870 0 0 1&lt;/MLMatrix44&gt;你知道该数据的布局,以及如何使用它数据移动其他部分以与第一个模型对齐?
    • 它们是 16 个浮点数,代表 4x4 变换矩阵的值。 3D程序和显卡通过网格中每个顶点的坐标计算这个矩阵的乘积,得到变换后顶点的新位置。见en.wikipedia.org/wiki/…。在 meshlab 中,您可以使用过滤器 matrix:set/copy transformation 获取/设置矩阵,或使用 matrix: Set from translation, rotation, scale 构建新矩阵。不知道在 Fusion 中如何做。
    猜你喜欢
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多