-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathReadDICOMImage.cxx
43 lines (34 loc) · 980 Bytes
/
ReadDICOMImage.cxx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "itkImageFileReader.h"
#include "itkGDCMImageIO.h"
#include "QuickView.h"
int main(int argc, char *argv[])
{
if (argc < 2)
{
std::cerr << "Usage: " << argv[0] << " DicomImage" << std::endl;
return EXIT_FAILURE;
}
using InputPixelType = signed short;
constexpr unsigned int InputDimension = 2;
using InputImageType = itk::Image< InputPixelType, InputDimension >;
using ImageIOType = itk::GDCMImageIO;
ImageIOType::Pointer gdcmImageIO = ImageIOType::New();
using ReaderType = itk::ImageFileReader< InputImageType >;
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName(argv[1]);
reader->SetImageIO(gdcmImageIO);
try
{
reader->Update();
}
catch ( itk::ExceptionObject &ex)
{
std::cerr << "exception in file reader " << std::endl;
std::cerr << ex << std::endl;
return EXIT_FAILURE;
}
QuickView viewer;
viewer.AddImage(reader->GetOutput());
viewer.Visualize();
return EXIT_SUCCESS;
}