2
我正在使用Kitware.VTK工具包以3d形式顯示2d圖像。在vtk中使用c#byte []圖像數據
我在byte []中有圖像。我想使用vtkImageviewer在Kitware.VTK的renderviewcontrol中顯示它。我對VTK沒有太多的想法。
有沒有其他方式來執行任務? 有人可以幫我嗎?
我正在使用Kitware.VTK工具包以3d形式顯示2d圖像。在vtk中使用c#byte []圖像數據
我在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
只是一個關於你的字節數組的圖像尺寸信息。您還應該確保GCHandle
和vtkImageData
對象未被GC
清除。
根據您的數據,可能需要設置Origin
和Spacing
。
謝謝JohnnyQ!它有幫助。我需要更多幫助。我有多個圖像的字節數組,我想將它們轉換成3D vtkimage。 它可以通過將字節數據存儲爲jpg或bmp圖像來完成,並且它們將這些圖像系列作爲3d加載到vtk中,但我不想存儲圖像,而只是想直接將它們轉換爲數組中的3d vtkimage。 – Finisher001
您可以將數組合併到一個數組中,並將其用作輸入數組,從而獲得一個3D卷作爲輸出。 – JohnnyQ
嗨JohnnyQ,我正在使用kitware vtk版本5.6。 SetScalarTypeToUnsignedByte()方法不可用。通過使用其他類似的方法,我無法創建圖像。我也沒有得到,如何合併圖像數據數組。 – Finisher001