[vtkusers] problem with convert itk to vtk
Роман Глуховский
roman_glu at mail.ru
Tue Apr 29 03:35:48 EDT 2014
I change the part of my programm to load the ImageSeries,
typedef itk::Image<unsigned char, 3> ImageType;
typedef itk::ImageSeriesReader< ImageType > ReaderType;
ReaderType::Pointer reader = ReaderType::New();
typedef itk::GDCMImageIO ImageIOType;
ImageIOType::Pointer dicomIO = ImageIOType::New();
reader->SetImageIO(dicomIO);
typedef itk::GDCMSeriesFileNames NamesGeneratorType;
NamesGeneratorType::Pointer nameGenerator = NamesGeneratorType::New();
nameGenerator->SetDirectory("Folder");
// get series IDs
typedef std::vector<std::string> SeriesIdContainer;
const SeriesIdContainer &seriesUID = nameGenerator->GetSeriesUIDs();
// get dicom series
typedef std::vector<std::string> FileNamesContainer;
FileNamesContainer fileName;
fileName=nameGenerator->GetFileNames(seriesUID.begin()->c_str());
reader->SetFileNames(fileName);
// pull reader
reader->Update();
But my programm crash again at the same position, when i try to convert to vtk.
Sat, 26 Apr 2014 07:12:55 +0800 (CST) от 关红彦 <ghy at tellyes.com>:
>
>
>I just wonder if your 3D medical images save as a file or a series of images.
>If you save them to a series of files, you shouldn't do this:
> #include < itkImageFileReader.h >
>reader->SetFileName( "DICOM-File" );
>
>but this:
>#include < itkImageSeriesReader.h >
>void SetFileNames (const FileNamesContainer &name)
>This class can read a series of *.DCM files that are using a lot in the hospital.
>
>
>At 2014-04-25 20:52:20,"Роман Глуховский" <roman_glu at mail.ru> wrote:
>>Hi vtkusers,
>>
>>i load a DICOM-file with itk and after that i would like to display the file with vtk.
>>
>>If I compile the programm I have no error. When i start the programm, its crashed and
>>i get a return value "0".
>>
>>In the debug-mode i get a "segmentation fault" and the programm stops at this position
>>
>>----------> m_Importer->SetPropagateUpdateExtentCallback(m_Exporter->GetPropagateUpdateExtentCallback());
>>
>>in the "itkImageToVTKImageFilter_hxx".
>>
>>Here is my code:
>>
>> typedef itk::Image<unsigned char, 3> VisualizingImageType;
>> typedef itk::ImageFileReader< VisualizingImageType > ReaderType;
>> ReaderType::Pointer reader = ReaderType::New();
>> reader->SetFileName( "DICOM-File" );
>> typedef itk::GDCMImageIO ImageIOType;
>>
>> ImageIOType::Pointer gdcmImageIO = ImageIOType::New();
>>
>> reader->SetImageIO( gdcmImageIO );
>> reader->Update();
>> reader->GetOutput()->Print(std::cout);
>>
>> vtkSmartPointer<vtkRenderWindow> renWin = vtkSmartPointer<vtkRenderWindow>::New();
>> vtkSmartPointer<vtkRenderer> ren1 = vtkSmartPointer<vtkRenderer>::New();
>> ren1->SetBackground(0.5f,0.5f,1.0f);
>>
>> renWin->AddRenderer(ren1);
>> renWin->SetSize(1280,1024);
>> vtkSmartPointer<vtkRenderWindowInteractor> iren =
>> vtkSmartPointer<vtkRenderWindowInteractor>::New();
>> iren->SetRenderWindow(renWin);
>> renWin->Render(); // make sure we have an OpenGL context.
>>
>> typedef itk::ImageToVTKImageFilter<VisualizingImageType> itkVtkConverter;
>> itkVtkConverter::Pointer conv=itkVtkConverter::New();
>> conv->GetExporter()->SetInput(reader->GetOutput());
>> conv->GetImporter()->Update();
>> conv->GetImporter()->GetOutput()->Print(std::cout);
>>
>> vtkImageViewer * viewer =vtkImageViewer::New();
>> vtkRenderWindowInteractor * renderWindowInteractor =
>> vtkRenderWindowInteractor::New();
>> viewer->SetupInteractor( renderWindowInteractor );
>> viewer->SetInputData( conv->GetImporter()->GetOutput() );
>> viewer->SetZSlice( 0 ); // <-- Slice selection
>> viewer->Render();
>> renderWindowInteractor->Start();
>>
>> viewer->Delete();
>> renderWindowInteractor->Delete();
>> conv->GetImporter()->Delete();
>>
>>
>>Thank you for your help
>>
>>Roman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20140429/73f3aded/attachment.html>
More information about the vtkusers
mailing list