#include <list>
#include <fstream>
int
main(int argc, char * argv[])
{
if (argc < 5)
{
std::cerr << "Usage: " << std::endl;
std::cerr << argv[0] << " DicomImage OutputDicomImage ";
std::cerr << " OutputImage RescaleDicomImage\n";
return EXIT_FAILURE;
}
using InputPixelType = short;
constexpr unsigned int InputDimension = 2;
auto reader = ReaderType::New();
reader->SetFileName(argv[1]);
auto gdcmImageIO = ImageIOType::New();
reader->SetImageIO(gdcmImageIO);
try
{
reader->Update();
}
{
std::cerr << "exception in file reader " << std::endl;
std::cerr << e << std::endl;
return EXIT_FAILURE;
}
auto writer1 = Writer1Type::New();
writer1->SetFileName(argv[2]);
writer1->SetInput(reader->GetOutput());
writer1->SetImageIO(gdcmImageIO);
try
{
writer1->Update();
}
{
std::cerr << "exception in file writer " << std::endl;
std::cerr << e << std::endl;
return EXIT_FAILURE;
}
using WritePixelType = unsigned char;
using RescaleFilterType =
auto rescaler = RescaleFilterType::New();
rescaler->SetOutputMinimum(0);
rescaler->SetOutputMaximum(255);
auto writer2 = Writer2Type::New();
writer2->SetFileName(argv[3]);
rescaler->SetInput(reader->GetOutput());
writer2->SetInput(rescaler->GetOutput());
try
{
writer2->Update();
}
{
std::cerr << "exception in file writer " << std::endl;
std::cerr << e << std::endl;
return EXIT_FAILURE;
}
auto writer3 = Writer3Type::New();
writer3->SetFileName(argv[4]);
writer3->SetInput(rescaler->GetOutput());
writer3->UseInputMetaDataDictionaryOff();
writer3->SetImageIO(gdcmImageIO);
try
{
writer3->Update();
}
{
std::cerr << "Exception in file writer " << std::endl;
std::cerr << e << std::endl;
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
Standard exception handling object.
ImageIO class for reading and writing DICOM V3.0 and ACR/NEMA 1&2 uncompressed images....
Data source that reads image data from a single file.
Writes image data to a single file.
Templated n-dimensional image class.
Applies a linear transformation to the intensity levels of the input Image.