gpt4 book ai didi

c++ - ITK VTK的组合

转载 作者:行者123 更新时间:2023-11-30 03:53:56 24 4
gpt4 key购买 nike

我是ITK和VTK医学影像编程的初学者。我想使用下面的代码作为 ITK 读取图像并通过 VTK 显示它。没有其他选择。我让它“成功”“构建”和“运行”。但是我在 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”。

最佳答案

我正在尝试将您的代码与示例 http://itk.org/Wiki/ITK/Examples/IO/ImageToVTKImageFilter 进行比较.由于您使用的是 vtk6(在示例中,它是 VTK_MAJOR_VERSION <= 5 的 else),请尝试替换

actor->SetInputData(connector->GetOutput());

 connector->Update();
actor->GetMapper()->SetInputData(connector->GetOutput());

如果仍然不起作用,请检查您是否已正确读取数据,例如使用 MinimumMaximumImageCalculator 检查强度范围 http://itk.org/Wiki/ITK/Examples/ImageProcessing/MinimumMaximumImageCalculator

还要注意图像的数据类型。难道你的png实际上是一个RGB图像? (有关示例,请参见 http://www.na-mic.org/svn/Slicer3-lib-mirrors/trunk/Insight/Testing/Code/IO/itkPNGImageIOTest.cxx )

关于c++ - ITK VTK的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29850725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com