[ITK] when using itkImageFileReader to read dicom image , it occurs assertion failure:pixeltype_debug==pixeltype.
转身转瞬
1549917255 at qq.com
Thu Mar 19 11:44:59 EDT 2015
Hi,everyone,
I'm using ITK to read CTA image(it's a kind of dicom image),and when it runs to the update ,the following error happens:
in command line:Assertion failed:pixeltype_debug==pixeltype. file..\..\..\..\..\InsightToolkit-4.4.0\Modules\IO\GDCM\src\itkGDCMImageIO.cxx,line 287
in a window:
Debug Error!
Program:F:\..\..\..\helloworld7.exe
R6010
-abort() has been called
(Press Retry to debug the application)
My code is as follows:
#include"itkImage.h"
#include"itkImageFileReader.h"
#include"itkImageToVTKImageFilter.h"
#include<itkGDCMImageIO.h>
#include"vtkImageViewer.h"
#include"vtkRenderWindowInteractor.h"
#include"vtkSmartPointer.h"
#include"vtkImageFlip.h"
#include"vtkRenderer.h"
#include"vtkImageActor.h"
#include"vtkCamera.h"
#include"vtkImageMapper.h"
using namespace std;
int main()
{
typedef itk::Image<unsigned char,2> ImageType;
typedef itk::ImageFileReader<ImageType> ReaderType;
ReaderType::Pointer reader=ReaderType::New();
//获得DICOM文件读取对象
typedef itk::GDCMImageIO ImageIOType;
ImageIOType::Pointer gdcmImageIO=ImageIOType::New();
//Filter of itk image data to vtk image data;
typedef itk::ImageToVTKImageFilter<ImageType> FilterType;
FilterType::Pointer connector=FilterType::New();
//获得DICOM文件名并读取DICOM文件;
char*DICOMName="F://c++projects//helloworld6//1.3.12.2.1107.5.1.4.60540.30000013102023122056200010862";
reader->SetFileName(DICOMName);
reader->SetImageIO(gdcmImageIO);
cout<<"done0"<<endl;
//ITK到VTK转化
connector->SetInput(reader->GetOutput());
cout<<"done1"<<endl;
connector->Update();//This is the place where error occurs!
cout<<"done2"<<endl;
vtkSmartPointer<vtkImageFlip>flip=vtkSmartPointer<vtkImageFlip>::New();
//vtkSmartPointer<vtkImageMapper>
flip->SetInput(connector->GetOutput());
flip->SetFilteredAxis(1);
//需要进行上下翻转才能正确显示;
flip->Update();
vtkSmartPointer<vtkImageActor>actor=vtkSmartPointer<vtkImageActor>::New();
actor->SetInput(flip->GetOutput());
actor->InterpolateOff();
vtkSmartPointer<vtkRenderer>renderer=vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor(actor);
vtkSmartPointer<vtkRenderWindow>renderWindow=vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
vtkRenderWindowInteractor*iren=vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renderWindow);
iren->Initialize();
iren->Start();
return 0;
}
If anyone know how to fix this, could you please just help me?
Thanks a lot.
Guirong Liu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/community/attachments/20150319/faf4e7bc/attachment-0001.html>
More information about the Community
mailing list