Skip to content

Commit fcdae19

Browse files
committed
fix(ITKHelper): Add ITK to VTK js image converter
1 parent c99f7ff commit fcdae19

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import vtkImageData from 'vtk.js/Sources/Common/DataModel/ImageData';
2+
import vtkDataArray from 'vtk.js/Sources/Common/Core/DataArray';
3+
4+
/**
5+
* Converts an itk.js image to a vtk.js image.
6+
*
7+
* Requires an itk.js image as input.
8+
*/
9+
function convertItkToVtkImage(itkImage) {
10+
// create VTK image data
11+
const imageData = vtkImageData.newInstance({
12+
origin: itkImage.origin.slice(),
13+
spacing: itkImage.spacing.slice(),
14+
});
15+
const scalars = vtkDataArray.newInstance({
16+
name: 'Scalars',
17+
values: itkImage.data,
18+
numberOfComponents: itkImage.imageType.components,
19+
});
20+
21+
imageData.setDirection(itkImage.direction.data);
22+
imageData.setDimensions(...itkImage.size);
23+
imageData.getPointData().setScalars(scalars);
24+
25+
return imageData;
26+
}
27+
28+
export default {
29+
convertItkToVtkImage,
30+
};

Sources/Common/DataModel/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import vtkCone from './Cone';
55
import vtkCylinder from './Cylinder';
66
import vtkDataSet from './DataSet';
77
import vtkDataSetAttributes from './DataSetAttributes';
8+
import vtkITKHelper from './ITKHelper';
89
import vtkImageData from './ImageData';
910
import vtkImplicitBoolean from './ImplicitBoolean';
1011
import vtkLine from './Line';
@@ -25,6 +26,7 @@ export default {
2526
vtkCylinder,
2627
vtkDataSet,
2728
vtkDataSetAttributes,
29+
vtkITKHelper,
2830
vtkImageData,
2931
vtkImplicitBoolean,
3032
vtkLine,

0 commit comments

Comments
 (0)