diff --git a/src/main.cxx b/src/main.cxx index f311e69..0cfeca7 100644 --- a/src/main.cxx +++ b/src/main.cxx @@ -1,3 +1,4 @@ +#include "config/config.h" #define EIGEN_USE_MKL_ALL #include @@ -28,6 +29,7 @@ int main() auto defaultLogger = getLogger("Main"); spdlog::set_default_logger(defaultLogger); SPDLOG_INFO("start"); + Recon::initalizeConfig(); Recon::startReconstructions(); SPDLOG_INFO("finish"); return 0; diff --git a/src/reflectionReconstruction/reconstructionSAFT/reconstructionSAFT.cpp b/src/reflectionReconstruction/reconstructionSAFT/reconstructionSAFT.cpp index 90437a5..e386cee 100644 --- a/src/reflectionReconstruction/reconstructionSAFT/reconstructionSAFT.cpp +++ b/src/reflectionReconstruction/reconstructionSAFT/reconstructionSAFT.cpp @@ -85,18 +85,18 @@ namespace Recon { Matrix_t senderIdx{nullptr, 2, - {senderIndex.getDataSize(),1, 1}, + {1,senderIndex.getDataSize(), 1}, senderIndex.getDataSize()}; - temp1 = new unsigned short[senderIndex.getDataSize()]; + auto temp2 = new unsigned short[senderIndex.getDataSize()]; std::copy(senderIndex.getData(), - senderIndex.getData() + senderIndex.getDataSize(), temp1); - senderIdx.Data = temp1; + senderIndex.getData() + senderIndex.getDataSize(), temp2); + senderIdx.Data = temp2; params.push_back(senderIdx); Matrix_t receiverGeom{nullptr, (size_t)receiverPosGeom.getDims(), - {(size_t)receiverPosGeom.getDimSize(0), - (size_t)receiverPosGeom.getDimSize(1), + {(size_t)receiverPosGeom.getDimSize(1), + (size_t)receiverPosGeom.getDimSize(0), (size_t)receiverPosGeom.getDimSize(2)}, receiverPosGeom.getDataSize()}; float *fdata = new float[receiverPosGeom.getDataSize()]{0}; @@ -107,14 +107,14 @@ namespace Recon { Matrix_t senderGeom{nullptr, (size_t)senderPosGeom.getDims(), - {(size_t)senderPosGeom.getDimSize(0), + {(size_t)senderPosGeom.getDimSize(1), (size_t)senderPosGeom.getDimSize(1), (size_t)senderPosGeom.getDimSize(2)}, senderPosGeom.getDataSize()}; - fdata = new float[senderPosGeom.getDataSize()]{0}; + auto fdata1 = new float[senderPosGeom.getDataSize()]{0}; std::copy(senderPosGeom.getData(), - senderPosGeom.getData() + senderPosGeom.getDataSize(), fdata); - senderGeom.Data = fdata; + senderPosGeom.getData() + senderPosGeom.getDataSize(), fdata1); + senderGeom.Data = fdata1; params.push_back(senderGeom); Matrix_t _SAFT_mode{&SAFT_mode, 1, {1, 1, 1}, 1}; @@ -131,10 +131,10 @@ namespace Recon { (size_t)transRecos.speedMap3D.getDimSize(1), (size_t)transRecos.speedMap3D.getDimSize(2)}, transRecos.speedMap3D.getDataSize()}; - fdata = new float[transRecos.speedMap3D.getDataSize()]{0}; + auto fdata2 = new float[transRecos.speedMap3D.getDataSize()]{0}; std::copy(transRecos.speedMap3D.getData(), - transRecos.speedMap3D.getData() + transRecos.speedMap3D.getDataSize(), fdata); - SpeedMap3D.Data = fdata; + transRecos.speedMap3D.getData() + transRecos.speedMap3D.getDataSize(), fdata2); + SpeedMap3D.Data = fdata2; params.push_back(SpeedMap3D); Matrix_t BeginTransMap{nullptr, @@ -143,10 +143,10 @@ namespace Recon { (size_t)transRecos.beginTransMap.getDimSize(1), (size_t)transRecos.beginTransMap.getDimSize(2)}, transRecos.beginTransMap.getDataSize()}; - fdata = new float[transRecos.beginTransMap.getDataSize()]{0}; + auto fdata3 = new float[transRecos.beginTransMap.getDataSize()]{0}; std::copy(transRecos.beginTransMap.getData(), - transRecos.beginTransMap.getData() + transRecos.beginTransMap.getDataSize(), fdata); - BeginTransMap.Data = fdata; + transRecos.beginTransMap.getData() + transRecos.beginTransMap.getDataSize(), fdata3); + BeginTransMap.Data = fdata3; params.push_back(BeginTransMap); Matrix_t DeltaTransMap{nullptr, @@ -155,9 +155,9 @@ namespace Recon { 1, 1, 1}; - fdata = new float[1]{0}; - fdata[0] = transRecos.deltaTransMap; - DeltaTransMap.Data = fdata; + auto fdata4 = new float[1]{0}; + fdata4[0] = transRecos.deltaTransMap; + DeltaTransMap.Data = fdata4; params.push_back(DeltaTransMap); Matrix_t AttenuationMap3D{nullptr, @@ -166,10 +166,10 @@ namespace Recon { (size_t)transRecos.attenuationMap3D.getDimSize(1), (size_t)transRecos.attenuationMap3D.getDimSize(2)}, transRecos.attenuationMap3D.getDataSize()}; - fdata = new float[transRecos.attenuationMap3D.getDataSize()]{0}; + auto fdata5 = new float[transRecos.attenuationMap3D.getDataSize()]{0}; std::copy(transRecos.attenuationMap3D.getData(), - transRecos.attenuationMap3D.getData() + transRecos.attenuationMap3D.getDataSize(), fdata); - AttenuationMap3D.Data = fdata; + transRecos.attenuationMap3D.getData() + transRecos.attenuationMap3D.getDataSize(), fdata5); + AttenuationMap3D.Data = fdata5; params.push_back(AttenuationMap3D); float imageResolution_v = (float)reflectParams::imageResolution; @@ -189,10 +189,7 @@ namespace Recon { {(size_t)Env.getDimSize(0), (size_t)Env.getDimSize(1), (size_t)Env.getDimSize(2)}, Env.getDataSize()}; - float *Envdata = new float[Env.getDataSize()]{0}; - std::copy(Env.getData(), Env.getData() + Env.getDataSize(), - Envdata); - _Env.Data = Envdata; + _Env.Data = Env.getData(); params.push_back(_Env); int blockXYZ_v[3]{(int)reflectParams::blockDimXYZ[0],(int)reflectParams::blockDimXYZ[1],(int)reflectParams::blockDimXYZ[2]}; @@ -212,6 +209,7 @@ namespace Recon { if (reflectParams::useAscanIndex == 0){ Matrix_t medianWindowSize{&reflectParams::medianWindowSize,1,{1,1,1},1}; + params.push_back(medianWindowSize); } int other[2]={reflectParams::debugMode, reflectParams::attenuationCorrectionLimit} ; @@ -219,10 +217,32 @@ namespace Recon { params.push_back(otherP); if (reflectParams::useAscanIndex == 0) { auto result = SAFT_ATT(params); + delete [] ASdata; + delete [] (float*)imageStartpoint.Data; + delete [] temp1; + delete [] temp2; + delete [] fdata; + delete [] fdata1; + delete [] fdata2; + delete [] fdata3; + delete [] fdata4; + delete [] fdata5; + delete [] gdata; return Aurora::Matrix::fromRawData((double *)result.Data, result.Dims[0], result.Dims[1], result.Dims[2]); } else { auto result = SAFT_TOFI(params); + delete [] ASdata; + delete [] (float*)imageStartpoint.Data; + delete [] temp1; + delete [] temp2; + delete [] fdata; + delete [] fdata1; + delete [] fdata2; + delete [] fdata3; + delete [] fdata4; + delete [] fdata5; + delete [] gdata; return Aurora::Matrix::fromRawData((double *)result.Data, result.Dims[0], result.Dims[1], result.Dims[2]); } diff --git a/src/reflectionReconstruction/startReflectionReconstruction.cpp b/src/reflectionReconstruction/startReflectionReconstruction.cpp index 340b35c..0521db0 100644 --- a/src/reflectionReconstruction/startReflectionReconstruction.cpp +++ b/src/reflectionReconstruction/startReflectionReconstruction.cpp @@ -87,6 +87,7 @@ Aurora::Matrix Recon::startReflectionReconstruction( Parser* aParser, int aSAFT_ removeDataFromArrays(blockData.receiverPositionBlock, preprocessData.usedData), removeDataFromArrays(blockData.mpBlock, preprocessData.usedData), aSAFT_mode, aTransRecos, Env); + printf("%d\n",j); } }