我们可以通过vtkColorTransferFunction设置不同灰度值进行着色
import vtkColorTransferFunction from 'vtk.js/Sources/Rendering/Core/ColorTransferFunction';
const ctfun = vtkColorTransferFunction.newInstance();
ctfun.addRGBPoint(0, 1.0, 0, 0);//立方体的颜色,红色
通过vtkPiecewiseFunction的立体分段设置透明度
const actor = vtkVolume.newInstance();//可视化实体
const ofun = vtkPiecewiseFunction.newInstance();
actor.getProperty().setScalarOpacity(0, ofun);
映射筛选数据源
const reader = vtkHttpDataSetReader.newInstance({ fetchGzip: true, });
reader .setUrl(`/data/LIDC2.vti`, { loadData: true }) .then(() => { const data = reader.getOutputData(); actor.setInputData(data); actor.setMapper(imageMapperI); renderer.addActor(imageMapperI); renderer.resetCamera(); renderWindow.render(); })
利用这个过程,我们最终给截面上色,结果图如下: