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

本文关键字:图像 数据 byte vtk | 更新日期: 2023-09-27 18:05:16

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

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

还有其他方法来执行任务吗?有人能帮我一下吗?

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

您可以将字节数组复制到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