- std::vector<double> sliceLocations;
- for(unsigned int i=0; i<args_info.inputs_num; i++) {
- //std::cout << "Reading <" << input_files[i] << std::endl;
- gdcm::File * header = clitk::readDicomHeader(input_files[i]);
- sliceLocations.push_back(header->GetZOrigin());
- // check
- /*if (!header->IsSignedPixelData()) {
- std::cerr << "Pixel type not signed ! " << std::endl;
- std::cerr << "In file " << input_files[i] << std::endl;
- exit(0);
- }*/
- if (header->GetPixelSize() != 2) {
- std::cerr << "Pixel type 2 bytes ! " << std::endl;
- std::cerr << "In file " << input_files[i] << std::endl;
- exit(0);
- }
+ int series_number = -1;
+ std::set<int> series_numbers;
+ std::map< int, std::vector<double> > theorigin;
+ std::map< int, std::vector<double> > theorientation;
+ std::map< int, std::vector<double> > sliceLocations;
+ std::map< int, std::vector<std::string> > seriesFiles;
+#if GDCM_MAJOR_VERSION == 2
+ if (args_info.verbose_flag)
+ std::cout << "Using GDCM-2.x" << std::endl;
+#else
+ if (args_info.verbose_flag) {
+ std::cout << "Not using GDCM-2.x" << std::endl;
+ std::cout<< "The image orientation is not supported with this version of GDCM" <<std::endl;
+ }
+#endif
+ for(unsigned int i=0; i<args_info.inputs_num; i++) {
+ if (args_info.verbose_flag)
+ std::cout << "Reading <" << input_files[i] << std::endl;
+#if GDCM_MAJOR_VERSION == 2
+ gdcm::Reader hreader;
+ hreader.SetFileName(input_files[i].c_str());
+ hreader.Read();
+ gdcm::DataSet& ds = hreader.GetFile().GetDataSet();
+
+ if (args_info.extract_series_flag) {
+ gdcm::Attribute<0x20,0x11> series_number_att;
+ series_number_att.SetFromDataSet(ds);
+ series_number = series_number_att.GetValue();