7 #ifndef Tomato_OxOriginalShmolliDicomReader_HXX     8 #define Tomato_OxOriginalShmolliDicomReader_HXX    10 #include <itkImageFileReader.h>    15     template< 
typename MeasureType >
    17     OriginalShmolliDicomReader<MeasureType>
    21         typename ReadFileListFilterType::Pointer readerMag = ReadFileListFilterType::New();
    22         readerMag->SetFileList(_filesMag);
    25         typename SortInvTimesImageFilterType::Pointer sorterMag = SortInvTimesImageFilterType::New();
    26         sorterMag->SetInvTimesNonSorted(readerMag->GetInvTimes());
    27         sorterMag->SetInput(readerMag->GetOutput());
    31         typename ReadFileListFilterType::Pointer readerPha = ReadFileListFilterType::New();
    32         readerPha->SetFileList(_filesPha);
    35         typename SortInvTimesImageFilterType::Pointer sorterPha = SortInvTimesImageFilterType::New();
    36         sorterPha->SetInvTimesNonSorted(readerPha->GetInvTimes());
    37         sorterPha->SetInput(readerPha->GetOutput());
    40         if (sorterMag->GetInvTimesSorted() == sorterPha->GetInvTimesSorted()){
    41             vnl_vector<InputPixelType > temp = sorterMag->GetInvTimesSorted();
    42             _nSamples = temp.size();
    44             _invTimes = 
new InputPixelType[_nSamples];
    45             KWUtil::copyArrayToArray(_nSamples, _invTimes, temp.data_block());
    47             throw std::runtime_error(
"Mag and Pha inv times are not equal");
    50         _imageMag = sorterMag->GetOutput();
    51         _imagePha = sorterPha->GetOutput();
    53         if (_filesT1.size() > 0) {
    54             typename itk::ImageFileReader<Image2dType>::Pointer reader = itk::ImageFileReader<Image2dType>::New();
    55             reader->SetFileName(_filesT1.at(0));
    57             _imageT1color = reader->GetOutput();
    60         if (_filesT1.size() > 1) {
    61             typename itk::ImageFileReader<Image2dType>::Pointer reader = itk::ImageFileReader<Image2dType>::New();
    62             reader->SetFileName(_filesT1.at(1));
    64             _imageT1grey = reader->GetOutput();
    67         if (_filesFitparams.size() > 0) {
    68             typename itk::ImageFileReader<Image2dType>::Pointer reader = itk::ImageFileReader<Image2dType>::New();
    69             reader->SetFileName(_filesFitparams.at(0));
    71             _imageR2 = reader->GetOutput();
    74         if (_filesFitparams.size() > 1) {
    75             typename itk::ImageFileReader<Image2dType>::Pointer reader = itk::ImageFileReader<Image2dType>::New();
    76             reader->SetFileName(_filesFitparams.at(1));
    78             _imageA = reader->GetOutput();
    81         if (_filesFitparams.size() > 2) {
    82             typename itk::ImageFileReader<Image2dType>::Pointer reader = itk::ImageFileReader<Image2dType>::New();
    83             reader->SetFileName(_filesFitparams.at(2));
    85             _imageB = reader->GetOutput();
    88         if (_filesFitparams.size() > 3) {
    89             typename itk::ImageFileReader<Image2dType>::Pointer reader = itk::ImageFileReader<Image2dType>::New();
    90             reader->SetFileName(_filesFitparams.at(3));
    92             _imageT1star = reader->GetOutput();
    95         if (_filesFitparams.size() > 4) {
    96             typename itk::ImageFileReader<Image2dType>::Pointer reader = itk::ImageFileReader<Image2dType>::New();
    97             reader->SetFileName(_filesFitparams.at(4));
    99             _imageNShmolliSamplesUsed = reader->GetOutput();
   102         if (_filesFitparams.size() > 5) {
   103             typename itk::ImageFileReader<Image2dType>::Pointer reader = itk::ImageFileReader<Image2dType>::New();
   104             reader->SetFileName(_filesFitparams.at(5));
   106             _imageChiSqrt = reader->GetOutput();
   109         if (_filesFitparams.size() > 6) {
   110             typename itk::ImageFileReader<Image2dType>::Pointer reader = itk::ImageFileReader<Image2dType>::New();
   111             reader->SetFileName(_filesFitparams.at(6));
   113             _imageSnr = reader->GetOutput();
   119     template< 
typename MeasureType >
   121     OriginalShmolliDicomReader<MeasureType>
   122     ::copyFromImage(MeasureType* array, 
const typename Image3dType::Pointer image, 
const typename Image3dType::IndexType index){
   124         typename Image3dType::SizeType size = image->GetLargestPossibleRegion().GetSize();
   125         typename Image3dType::IndexType tempIndex = index;
   127         for (
int i = 0; i < size[2]; ++i){
   129             array[i] = image->GetPixel(tempIndex);
   138 #endif //Tomato_OxOriginalShmolliDicomReader_H 
Definition: OxCalculator.h:19