渲染图像堆栈
在本教程中,您将学习如何渲染一组图像。
前言
为了渲染一组图像,我们需要:
- 初始化库
- 一个
element
(HTMLDivElement)作为视口的容器 - 图像的路径(
imageId
)
实现
我们已经将图像存储在服务器上,供本教程使用。
- 初始化库
import { init as coreInit } from '@cornerstonejs/core';
import { init as dicomImageLoaderInit } from '@cornerstonejs/dicom-image-loader';
await coreInit();
await dicomImageLoaderInit();
- 创建一个HTML元素并为其设置样式,使其看起来像一个视口。
const content = document.getElementById('content');
const element = document.createElement('div');
element.style.width = '500px';
element.style.height = '500px';
content.appendChild(element);
接下来,我们需要一个renderingEngine
和一个视口来渲染图像。
const renderingEngineId = 'myRenderingEngine';
const renderingEngine = new RenderingEngine(renderingEngineId);
然后,我们可以通过使用enableElement
API在renderingEngine
中创建一个视口。请注意,由于我们不想渲染一个体积数据集,因此指定视口类型为Stack
。
const viewportId = 'CT_AXIAL_STACK';
const viewportInput = {
viewportId,
element,
};
renderingEngine.enableElement(viewportInput);
RenderingEngine将处理视口的创建,我们可以获取视口对象并设置图像,并选择要显示的图像索引。
info
我们在这里使用的imageIds
是通过createImageIdsAndCacheMetaData
函数生成的。
const imageIds = await createImageIdsAndCacheMetaData({
StudyInstanceUID:
'1.3.6.1.4.1.14519.5.2.1.7009.2403.334240657131972136850343327463',
SeriesInstanceUID:
'1.3.6.1.4.1.14519.5.2.1.7009.2403.226151125820845824875394858561',
wadoRsRoot: 'https://d14fa38qiwhyfd.cloudfront.net/dicomweb',
});
const viewport = renderingEngine.getViewport(viewportId);
viewport.setStack(imageIds, 60);
viewport.render();
提示
由于imageIds
是一个图像ID数组,因此我们可以使用setStack
的第二个参数来设置显示的图像索引。
完整代码
查看完整代码
import { RenderingEngine, Enums, init as coreInit } from '@cornerstonejs/core';
import { init as dicomImageLoaderInit } from '@cornerstonejs/dicom-image-loader';
import { createImageIdsAndCacheMetaData } from '../../../../utils/demo/helpers';
const content = document.getElementById('content');
const element = document.createElement('div');
element.style.width = '500px';
element.style.height = '500px';
content.appendChild(element);
// ============================= //
/**
* 运行演示
*/
async function run() {
await coreInit();
await dicomImageLoaderInit();
// 获取Cornerstone imageIds并将元数据加载到内存中
const imageIds = await createImageIdsAndCacheMetaData({
StudyInstanceUID:
'1.3.6.1.4.1.14519.5.2.1.7009.2403.334240657131972136850343327463',
SeriesInstanceUID:
'1.3.6.1.4.1.14519.5.2.1.7009.2403.226151125820845824875394858561',
wadoRsRoot: 'https://d14fa38qiwhyfd.cloudfront.net/dicomweb',
});
const renderingEngineId = 'myRenderingEngine';
const renderingEngine = new RenderingEngine(renderingEngineId);
const viewportId = 'CT_AXIAL_STACK';
const viewportInput = {
viewportId,
element,
type: Enums.ViewportType.STACK,
};
renderingEngine.enableElement(viewportInput);
const viewport = renderingEngine.getViewport(viewportId);
viewport.setStack(imageIds, 60);
viewport.render();
}
run();
您应该会看到以下效果:
阅读更多
了解更多关于:
如需了解更高级的Stack Viewport
用法,请访问StackViewport API示例页面。
提示
- 访问示例页面查看如何在本地运行示例。