/*! * \file OxShmolli_test.cpp * \author Konrad Werys * \date 2018/08/20 */ #include "gtest/gtest.h" #include "OxOriginalShmolliDicomReader.h" #include "Tomato.h" #include "CmakeConfigForTomato.h" #ifdef USE_ITK #ifdef USE_PRIVATE_NR2 //TODO: implement TEST(OxCalculator_SameResultsAsDicom, calculate) { typedef double TYPE; Ox::Tomato Tomato_object("testData/Hcmr_Phantom_1916_Shmolli_192i_e11_fileList.yaml"); Ox::OriginalShmolliDicomReader originalShmolliDicomReader; originalShmolliDicomReader._filesMag = Tomato_object._opts->files_magnitude; originalShmolliDicomReader._filesPha = Tomato_object._opts->files_phase; originalShmolliDicomReader._filesT1.push_back("testData/dicom/Hcmr_Phantom_1916_260C/Konrad_Shmolli/ShMOLLI_192i_e11_T1MAP_14/IM-0003-0001.dcm"); originalShmolliDicomReader._filesT1.push_back("testData/dicom/Hcmr_Phantom_1916_260C/Konrad_Shmolli/ShMOLLI_192i_e11_T1MAP_14/IM-0003-0002.dcm"); originalShmolliDicomReader._filesFitparams.push_back("testData/dicom/Hcmr_Phantom_1916_260C/Konrad_Shmolli/ShMOLLI_192i_e11_FITPARAMS_15/IM-0004-0001.dcm"); originalShmolliDicomReader._filesFitparams.push_back("testData/dicom/Hcmr_Phantom_1916_260C/Konrad_Shmolli/ShMOLLI_192i_e11_FITPARAMS_15/IM-0004-0002.dcm"); originalShmolliDicomReader._filesFitparams.push_back("testData/dicom/Hcmr_Phantom_1916_260C/Konrad_Shmolli/ShMOLLI_192i_e11_FITPARAMS_15/IM-0004-0003.dcm"); originalShmolliDicomReader._filesFitparams.push_back("testData/dicom/Hcmr_Phantom_1916_260C/Konrad_Shmolli/ShMOLLI_192i_e11_FITPARAMS_15/IM-0004-0004.dcm"); originalShmolliDicomReader._filesFitparams.push_back("testData/dicom/Hcmr_Phantom_1916_260C/Konrad_Shmolli/ShMOLLI_192i_e11_FITPARAMS_15/IM-0004-0005.dcm"); originalShmolliDicomReader._filesFitparams.push_back("testData/dicom/Hcmr_Phantom_1916_260C/Konrad_Shmolli/ShMOLLI_192i_e11_FITPARAMS_15/IM-0004-0006.dcm"); originalShmolliDicomReader._filesFitparams.push_back("testData/dicom/Hcmr_Phantom_1916_260C/Konrad_Shmolli/ShMOLLI_192i_e11_FITPARAMS_15/IM-0004-0007.dcm"); originalShmolliDicomReader.readAndSort(); int nSamples = originalShmolliDicomReader._nSamples; TYPE *invTimes = originalShmolliDicomReader._invTimes; Ox::OriginalShmolliDicomReader::Image2dType::IndexType index2d; index2d[0] = 41-1; index2d[1] = 199-1; Ox::OriginalShmolliDicomReader::Image3dType::IndexType index3d; index3d[0] = index2d[0]; index3d[1] = index2d[1]; index3d[2] = 0; TYPE *sigMag = new TYPE[nSamples]; TYPE *sigPha = new TYPE[nSamples]; originalShmolliDicomReader.copyFromImage(sigMag, originalShmolliDicomReader._imageMag, index3d); originalShmolliDicomReader.copyFromImage(sigPha, originalShmolliDicomReader._imagePha, index3d); // init the necessary objects Ox::FunctionsT1CalculatorShmolli functionsObject; Ox::FitterAmoebaPrivateNr2 fitter; Ox::SignCalculatorShmolli signCalculator; Ox::StartPointCalculatorShmolli startPointCalculator; Ox::CalculatorT1Shmolli calculator; // fitter.setTrace(true); // fitter.setVerbose(true); // configure calculator.setFunctionsT1(&functionsObject); calculator.setFitter(&fitter); calculator.setSignCalculator(&signCalculator); calculator.setStartPointCalculator(&startPointCalculator); // set the data calculator.setNSamples(nSamples); calculator.setInvTimes(invTimes); calculator.setSigMag(sigMag); calculator.setSigPha(sigPha); calculator.setMeanCutOff(10); //calculator.prepareToCalculate(); calculator.calculate(); // std::cout << std::endl ; // std::cout << "oryginal/calculated"<< std::endl ; // std::cout << originalShmolliDicomReader._imageA->GetPixel(index2d) << " " << calculator.getResults().A << std::endl ; // std::cout << originalShmolliDicomReader._imageB->GetPixel(index2d) << " " <GetPixel(index2d) << " " <