我是ITK和VTK醫學影像編程的初學者。 我想將以下代碼用作ITK讀取圖像並由VTK顯示它。沒有其他選擇。我已經「建立」和「運行」「成功」。 但我無法在VTK窗口中看到圖像。ITK VTK的組合
#include "itkPNGImageIO.h"
#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkImageToVTKImageFilter.h"
#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL)
#define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)
#include "vtkImageViewer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkImageActor.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
int main()
{
typedef itk::Image<unsigned short,2> ImageType;
typedef itk::ImageFileReader<ImageType> ReaderType;
typedef itk::ImageToVTKImageFilter<ImageType> ConnectorType;
ReaderType::Pointer reader= ReaderType::New();
ConnectorType::Pointer connector= ConnectorType::New();
reader->SetFileName("BrainT1Slice.png");
reader->SetImageIO(itk::PNGImageIO::New());
connector->SetInput(reader->GetOutput());
vtkImageActor *actor = vtkImageActor::New();
actor->SetInputData(connector->GetOutput());
vtkRenderer * ren = vtkRenderer::New();
ren->AddActor(actor);
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(ren);
vtkImageViewer* viewer= vtkImageViewer::New();
vtkRenderWindowInteractor* renderWindowInteractor=vtkRenderWindowInteractor::New();
viewer->SetInputData(connector->GetOutput());
viewer->SetupInteractor(renderWindowInteractor);
viewer->SetColorWindow(255);
viewer->SetColorLevel(128);
viewer->Render();
renderWindowInteractor->Initialize();
renderWindowInteractor->Start();
return 0;
}
當連接器傳輸數據給actor時會發生什麼? 我使用「itk-4.6.0」,「vtk-6.2.0」(都成功建立)和「vs2010」。
謝謝。只是connector-> update()很好。感到不好意識到這條管道。 – Xavier
我認爲錯過管道中的更新已經咬傷ITK每個初學者:) p.s如果它解決了你的問題,你能接受答案嗎? – lib