X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Fsrc1%2Fbrukerdataset.cpp;h=f4cdc7087cd48bc8da4ac2b28be61cfbde9342c2;hb=e3ee3436dd081af55f71997e58f5727345a84bff;hp=affe61c6eb68f0a7e9bf6912921b50fc5a878897;hpb=ae5c3dd3e9ff2d97d7c4dba31680ad97be1f967a;p=creaBruker.git diff --git a/lib/src1/brukerdataset.cpp b/lib/src1/brukerdataset.cpp index affe61c..f4cdc70 100644 --- a/lib/src1/brukerdataset.cpp +++ b/lib/src1/brukerdataset.cpp @@ -1,3 +1,30 @@ +/* + # --------------------------------------------------------------------- + # + # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image + # pour la Santé) + # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton + # Previous Authors : Laurent Guigues, Jean-Pierre Roux + # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil + # + # This software is governed by the CeCILL-B license under French law and + # abiding by the rules of distribution of free software. You can use, + # modify and/ or redistribute the software under the terms of the CeCILL-B + # license as circulated by CEA, CNRS and INRIA at the following URL + # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + # or in the file LICENSE.txt. + # + # As a counterpart to the access to the source code and rights to copy, + # modify and redistribute granted by the license, users are provided only + # with a limited warranty and the software's author, the holder of the + # economic rights, and the successive licensors have only limited + # liability. + # + # The fact that you are presently reading this means that you have had + # knowledge of the CeCILL-B license and that you accept its terms. + # ------------------------------------------------------------------------ +*/ + // // C++ Implementation: brukerdataset // @@ -21,7 +48,7 @@ BrukerDataSet::BrukerDataSet(){} BrukerDataSet::~BrukerDataSet(){} -bool BrukerDataSet::LoadFile(std::string& fileToRead) +bool BrukerDataSet::LoadFile(std::string fileToRead) { //std::cout << @@ -326,7 +353,7 @@ bool BrukerDataSet::FillMap() data.DataType=GetContentType(Substring); if (DEBUG) std::cout<<"data.DataType="<< data.DataType < Inner=GetInnerObjectLoopStructure(); std::vector Outer=GetOuterObjectLoopStructure(); std::vector TmpVect; @@ -681,7 +708,7 @@ std::map BrukerDataSet::GetBrukerHeaderMap() const //} -bool BrukerDataSet::SetInnerObjectLoopStructure() +bool BrukerDataSet::SetInnerObjectLoopStructure(int dimension) { /* * @@ -712,11 +739,15 @@ bool BrukerDataSet::SetInnerObjectLoopStructure() //std::cout<<"BrukerDataSet::BrukerHeaderMap[(std::string) ACQ_ns_list_size].IntValue[0]" << BrukerDataSet::BrukerHeaderMap[(std::string) "ACQ_ns_list_size"].IntValue[0] << std::endl; TempIntVect.push_back(BrukerDataSet::BrukerHeaderMap[(std::string) "ACQ_phase_factor"].IntValue[0]); //std::cout<<"BrukerDataSet::BrukerHeaderMap[(std::string) ACQ_phase_factor].IntValue[0]" << BrukerDataSet::BrukerHeaderMap[(std::string) "ACQ_phase_factor"].IntValue[0]<< std::endl; + if(dimension > 1) TempIntVect.push_back(BrukerDataSet::BrukerHeaderMap[(std::string) "NSLICES"].IntValue[0]); //std::cout << "BrukerDataSet::BrukerHeaderMap[(std::string) NSLICES].IntValue[0]" << BrukerDataSet::BrukerHeaderMap[(std::string) "NSLICES"].IntValue[0] << std::endl; if (1<=BrukerDataSet::BrukerHeaderMap[ (std::string) "ACQ_size" ].DimensionNumber ) { - TempIntVect.push_back(BrukerDataSet::BrukerHeaderMap[ (std::string) "ACQ_size" ].IntValue[1]/BrukerDataSet::BrukerHeaderMap[(std::string) "ACQ_phase_factor"].IntValue[0]); + if(dimension == 1) + TempIntVect.push_back(BrukerDataSet::BrukerHeaderMap[ (std::string) "ACQ_size" ].IntValue[0]/BrukerDataSet::BrukerHeaderMap[(std::string) "ACQ_phase_factor"].IntValue[0]); + else + TempIntVect.push_back(BrukerDataSet::BrukerHeaderMap[ (std::string) "ACQ_size" ].IntValue[1]/BrukerDataSet::BrukerHeaderMap[(std::string) "ACQ_phase_factor"].IntValue[0]); //std::cout << "BrukerDataSet::BrukerHeaderMap[ (std::string) ACQ_size ].IntValue[1]/BrukerDataSet::BrukerHeaderMap[(std::string) ACQ_phase_factor].IntValue[0]" << BrukerDataSet::BrukerHeaderMap[ (std::string) "ACQ_size" //].IntValue[1]/BrukerDataSet::BrukerHeaderMap[(std::string) "ACQ_phase_factor"].IntValue[0] << std::endl; if (2<=BrukerDataSet::BrukerHeaderMap[ (std::string) "ACQ_size" ].DimensionNumber ) @@ -744,7 +775,7 @@ std::vector< int > BrukerDataSet::GetOuterObjectLoopStructure() const } -bool BrukerDataSet::SetOuterObjectLoopStructure () +bool BrukerDataSet::SetOuterObjectLoopStructure (int dimension) { OuterObjectLoopStructure.clear(); /* @@ -759,6 +790,9 @@ bool BrukerDataSet::SetOuterObjectLoopStructure () if (! CheckExistKeyword("NI")) return false; // Ici, boucles additionnelles si elles existent regroupees en une seule //temp=GetIntValueN(NIStr,1)/(GetIntValueN(NSLICESStr,1)*GetIntValueN(NECHOESStr,1)); + if(dimension ==1) + temp=BrukerDataSet::BrukerHeaderMap[ (std::string) "NI" ].IntValue[0]/(BrukerDataSet::BrukerHeaderMap[ (std::string) "ACQ_ns_list_size" ].IntValue[0]); + else temp=BrukerDataSet::BrukerHeaderMap[ (std::string) "NI" ].IntValue[0]/(BrukerDataSet::BrukerHeaderMap[ (std::string) "NSLICES" ].IntValue[0]*BrukerDataSet::BrukerHeaderMap[ (std::string) "ACQ_ns_list_size" ].IntValue[0]); if (1 < temp) TempIntVect.push_back(temp);