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

在vtk中使用c#字节[]图像数据,c#,image,3d,2d,vtk,C#,Image,3d,2d,Vtk,我正在使用Kitware.VTK工具包以三维方式显示二维图像 我有字节[]的图像。我想使用vtkImageviewer在Kitware.VTK的renderviewcontrol中显示它。我对VTK不太了解 有没有其他方法来完成这项任务? 有人能帮我吗 您可以将字节数组复制到VTK世界,并创建一个vktImageData对象,将其用作InputConnection vtkUnsignedCharArray myCharArray = vtkUnsignedCharArray.New(); GCH

我正在使用Kitware.VTK工具包以三维方式显示二维图像

我有字节[]的图像。我想使用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
只是关于字节数组的图像维度的信息。您还应确保
GCHandle
vtkImageData
对象未被
GC
清除


根据您的数据,可能需要设置
原点
间距

谢谢JohnnyQ!这有帮助。我需要更多的帮助。我有多个图像的字节数组,我想把它们转换成3d视频图像。它可以通过将字节数据存储为jpg或bmp图像,并将这些图像作为3d加载到vtk中来完成,但我不想存储图像,只想直接将它们从数组转换为3d vtkimage。您可以将数组合并为一个数组,并将其用作输入数组,这样您就可以得到一个3d卷作为输出。嗨,JohnnyQ,我正在使用kitware vtk版本5.6。SetScalarTypeToUnsignedByte()方法在其中不可用。通过使用其他类似的方法,我无法创建图像。我也不知道如何合并图像数据数组。更正了我所指的代码
SetScalarTypeToUnsignedChar
。看它还是不起作用。你们能给出完整的代码在vtk图像查看器中显示图像吗。