跳到主要内容

几何加载器

本节介绍 Cornerstone Core 中的几何加载器。

如果你读过分割渲染那一节, 就会知道一份分割既可以渲染成体数据(标签图),也可以渲染成轮廓或曲面。

TIP

类似的关系结构也被一些主流医学影像软件采用, 例如 3D Slicer 配合 polymorph segmentation。

几何加载器的作用,总体上就是从文件或 URL 加载并缓存几何数据。

注册网格加载器​

你可以用 registerGeometryLoader 把一个外部网格加载器接入 cornerstone 库。该函数接受一个 scheme, 表示第二个参数那个网格加载器函数负责处理的 scheme。

import {
geometryLoader,
cornerstoneMeshLoader,
Enums,
Types,
} from '@cornerstonejs/core';

geometryLoader.registerGeometryLoader('mesh', cornerstoneMeshLoader);

CornerstoneMeshLoader​

cornerstoneMeshLoader 的示例代码可以在 这里 查看。

const mesh1 = await geometryLoader.loadAndCacheGeometry(
'mesh:https://example.com/mesh.ply',
{
type: Enums.GeometryType.MESH,
geometryData: {
id: 'mesh1',
format: Enums.MeshType.PLY,
} as Types.MeshData,
}
);

const mesh2 = await geometryLoader.loadAndCacheGeometry(
'mesh:https://example.com/mesh.obj',
{
type: Enums.GeometryType.MESH,
geometryData: {
id: 'mesh2',
format: Enums.MeshType.OBJ,
materialUrl: 'https://example.com/material.mtl',
} as Types.MeshData,
}
);

viewport.setActors([
{ uid: mesh1.id, actor: (mesh1.data as Types.IMesh).actor },
{ uid: mesh2.id, actor: (mesh2.data as Types.IMesh).actor },
]);

支持的网格格式​

cornerstoneMeshLoader 支持的网格格式有:

  • PLY
  • OBJ
  • STL
  • VTP

支持的材质格式​

cornerstoneMeshLoader 支持的材质格式有:

  • MTL
  • JPG
  • PNG
  • JPEG