在vtk中使用c# byte[]图像数据

Use c# byte[] image data in vtk

我正在使用 Kitware.VTK 工具包在 3d 中显示 2d 图像。

我在 byte[] 中有图像。我想使用 vtkImageviewer 在 Kitware.VTK 的 renderviewcontrol 中显示它。我对 VTK 不太了解。

还有其他方法可以完成任务吗? 有人可以帮我吗?

您可以将字节数组复制到 VTK 世界并创建一个 vktImageData 对象以将其用作 InputConnection

vtkUnsignedCharArray myCharArray = vtkUnsignedCharArray.New();
GCHandle myPinnedArray = GCHandle.Alloc(myByteArray, GCHandleType.Pinned);
myCharArray.SetArray(myPinnedArray.AddrOfPinnedObject(), myData.Width * myData.Height * myData.Depth, 1);

vtkImageData myVtkImageData = vtkImageData.New();
myVtkImageData.GetPointData().SetScalars(myCharArray);
myVtkImageData.SetScalarTypeToUnsignedChar();

myVtkImageData.SetExtent(0, myData.Width - 1, 0, myData.Height - 1, myData.Depth -1);

myVtkImageData.Update();

myData 只是有关字节数组图像维度的信息。您还应确保 GCHandlevtkImageData 对象未被 GC.

清除

根据您的数据,可能需要设置 OriginSpacing