Try recon

This commit is contained in:
kradchen
2023-06-14 14:48:53 +08:00
parent 4913ab7e60
commit 1d0b53126a
3 changed files with 49 additions and 26 deletions

View File

@@ -1,3 +1,4 @@
#include "config/config.h"
#define EIGEN_USE_MKL_ALL
#include <iostream>
@@ -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;

View File

@@ -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]);
}

View File

@@ -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);
}
}