reconstructionSAFT 1

This commit is contained in:
kradchen
2023-06-14 11:37:24 +08:00
parent bd1a2fdbe4
commit e57938ca5d
2 changed files with 82 additions and 57 deletions

View File

@@ -3,6 +3,7 @@
#include <limits>
#include "Function1D.h"
#include "Function3D.h"
#include "MatlabReader.h"
#include "MatlabWriter.h"
#include "Matrix.h"
@@ -16,6 +17,10 @@
#include "transmissionReconstruction/reconstruction/reconstruction.h"
#include "transmissionReconstruction/reconstruction/solvingEquationSystem/TVAL/TVAL.h"
#include "reflectionReconstruction/preprocessData/preprocessTransmissionReconstructionForReflection.h"
#include "reflectionReconstruction/preprocessData/precalcImageParameters.h"
#include "reflectionReconstruction/reconstructionSAFT/reconstructionSAFT.h"
#include "reflectionReconstruction/preprocessData/determineOptimalPulse.h"
@@ -60,6 +65,47 @@ TEST_F(Reconstruction_Test, determineOptimalPulse) {
}
}
TEST_F(Reconstruction_Test, reconstructionSAFT) {
Recon::initalizeConfig();
MatlabReader m("/home/sun/testData/recontructSAFT.mat");
auto Ascans = m.read("AScans");
auto AttenuationMap3D = m.read("AttenuationMap3D");
auto begin_TransMap = m.read("begin_TransMap");
auto delta_TransMap = m.read("delta_TransMap");
auto EnvOut = m.read("Env");
auto mpIndex = m.read("mpIndex");
auto receiverPos = m.read("receiverPos");
auto SAFT_mode = m.read("SAFT_mode");
auto senderPos = m.read("senderPos");
auto SpeedMap3D = m.read("SpeedMap3D");
Recon::TransRecos transRecos;
transRecos.speedMap3D = SpeedMap3D;
transRecos.attenuationMap3D = AttenuationMap3D;
transRecos.beginTransMap = begin_TransMap;
transRecos.deltaTransMap = delta_TransMap[0];
MatlabReader m1("/home/sun/testData/resampleTransmissionVolume.mat");
auto maxEmitter = m1.read("maxEmitter");
auto maxReceiver = m1.read("maxReceiver");
auto minEmitter = m1.read("minEmitter");
auto minReceiver = m1.read("minReceiver");
Recon::GeometryInfo geom;
geom.maxEmitter = maxEmitter;
geom.minEmitter = minEmitter;
geom.maxReceiver = maxReceiver;
geom.minReceiver = minReceiver;
geom.minSize = m1.read("minSize");
geom.maxSize = m1.read("maxSize");
precalcImageParameters(geom);
Aurora::Matrix Env = Aurora::zeros((int)Recon::reflectParams::imageXYZ[0],(int)Recon::reflectParams::imageXYZ[1],(int)Recon::reflectParams::imageXYZ[2]);
auto result = Recon::recontructSAFT(Ascans, senderPos, receiverPos, mpIndex, 2, transRecos, Env);
for(size_t i=0; i<result.getDataSize(); ++i)
{
EXPECT_DOUBLE_AE(result[i], EnvOut[i])<<"index:"<<i;
}
}
TEST_F(Reconstruction_Test, preprocessAScanBlockForReflection) {
Recon::initalizeConfig();
MatlabReader m2("/home/krad/TestData/preprocessRefC.mat");