Try recon
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
#include "config/config.h"
|
||||||
#define EIGEN_USE_MKL_ALL
|
#define EIGEN_USE_MKL_ALL
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
@@ -28,6 +29,7 @@ int main()
|
|||||||
auto defaultLogger = getLogger("Main");
|
auto defaultLogger = getLogger("Main");
|
||||||
spdlog::set_default_logger(defaultLogger);
|
spdlog::set_default_logger(defaultLogger);
|
||||||
SPDLOG_INFO("start");
|
SPDLOG_INFO("start");
|
||||||
|
Recon::initalizeConfig();
|
||||||
Recon::startReconstructions();
|
Recon::startReconstructions();
|
||||||
SPDLOG_INFO("finish");
|
SPDLOG_INFO("finish");
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -85,18 +85,18 @@ namespace Recon {
|
|||||||
|
|
||||||
Matrix_t senderIdx{nullptr,
|
Matrix_t senderIdx{nullptr,
|
||||||
2,
|
2,
|
||||||
{senderIndex.getDataSize(),1, 1},
|
{1,senderIndex.getDataSize(), 1},
|
||||||
senderIndex.getDataSize()};
|
senderIndex.getDataSize()};
|
||||||
temp1 = new unsigned short[senderIndex.getDataSize()];
|
auto temp2 = new unsigned short[senderIndex.getDataSize()];
|
||||||
std::copy(senderIndex.getData(),
|
std::copy(senderIndex.getData(),
|
||||||
senderIndex.getData() + senderIndex.getDataSize(), temp1);
|
senderIndex.getData() + senderIndex.getDataSize(), temp2);
|
||||||
senderIdx.Data = temp1;
|
senderIdx.Data = temp2;
|
||||||
params.push_back(senderIdx);
|
params.push_back(senderIdx);
|
||||||
|
|
||||||
Matrix_t receiverGeom{nullptr,
|
Matrix_t receiverGeom{nullptr,
|
||||||
(size_t)receiverPosGeom.getDims(),
|
(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)},
|
(size_t)receiverPosGeom.getDimSize(2)},
|
||||||
receiverPosGeom.getDataSize()};
|
receiverPosGeom.getDataSize()};
|
||||||
float *fdata = new float[receiverPosGeom.getDataSize()]{0};
|
float *fdata = new float[receiverPosGeom.getDataSize()]{0};
|
||||||
@@ -107,14 +107,14 @@ namespace Recon {
|
|||||||
|
|
||||||
Matrix_t senderGeom{nullptr,
|
Matrix_t senderGeom{nullptr,
|
||||||
(size_t)senderPosGeom.getDims(),
|
(size_t)senderPosGeom.getDims(),
|
||||||
{(size_t)senderPosGeom.getDimSize(0),
|
{(size_t)senderPosGeom.getDimSize(1),
|
||||||
(size_t)senderPosGeom.getDimSize(1),
|
(size_t)senderPosGeom.getDimSize(1),
|
||||||
(size_t)senderPosGeom.getDimSize(2)},
|
(size_t)senderPosGeom.getDimSize(2)},
|
||||||
senderPosGeom.getDataSize()};
|
senderPosGeom.getDataSize()};
|
||||||
fdata = new float[senderPosGeom.getDataSize()]{0};
|
auto fdata1 = new float[senderPosGeom.getDataSize()]{0};
|
||||||
std::copy(senderPosGeom.getData(),
|
std::copy(senderPosGeom.getData(),
|
||||||
senderPosGeom.getData() + senderPosGeom.getDataSize(), fdata);
|
senderPosGeom.getData() + senderPosGeom.getDataSize(), fdata1);
|
||||||
senderGeom.Data = fdata;
|
senderGeom.Data = fdata1;
|
||||||
params.push_back(senderGeom);
|
params.push_back(senderGeom);
|
||||||
|
|
||||||
Matrix_t _SAFT_mode{&SAFT_mode, 1, {1, 1, 1}, 1};
|
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(1),
|
||||||
(size_t)transRecos.speedMap3D.getDimSize(2)},
|
(size_t)transRecos.speedMap3D.getDimSize(2)},
|
||||||
transRecos.speedMap3D.getDataSize()};
|
transRecos.speedMap3D.getDataSize()};
|
||||||
fdata = new float[transRecos.speedMap3D.getDataSize()]{0};
|
auto fdata2 = new float[transRecos.speedMap3D.getDataSize()]{0};
|
||||||
std::copy(transRecos.speedMap3D.getData(),
|
std::copy(transRecos.speedMap3D.getData(),
|
||||||
transRecos.speedMap3D.getData() + transRecos.speedMap3D.getDataSize(), fdata);
|
transRecos.speedMap3D.getData() + transRecos.speedMap3D.getDataSize(), fdata2);
|
||||||
SpeedMap3D.Data = fdata;
|
SpeedMap3D.Data = fdata2;
|
||||||
params.push_back(SpeedMap3D);
|
params.push_back(SpeedMap3D);
|
||||||
|
|
||||||
Matrix_t BeginTransMap{nullptr,
|
Matrix_t BeginTransMap{nullptr,
|
||||||
@@ -143,10 +143,10 @@ namespace Recon {
|
|||||||
(size_t)transRecos.beginTransMap.getDimSize(1),
|
(size_t)transRecos.beginTransMap.getDimSize(1),
|
||||||
(size_t)transRecos.beginTransMap.getDimSize(2)},
|
(size_t)transRecos.beginTransMap.getDimSize(2)},
|
||||||
transRecos.beginTransMap.getDataSize()};
|
transRecos.beginTransMap.getDataSize()};
|
||||||
fdata = new float[transRecos.beginTransMap.getDataSize()]{0};
|
auto fdata3 = new float[transRecos.beginTransMap.getDataSize()]{0};
|
||||||
std::copy(transRecos.beginTransMap.getData(),
|
std::copy(transRecos.beginTransMap.getData(),
|
||||||
transRecos.beginTransMap.getData() + transRecos.beginTransMap.getDataSize(), fdata);
|
transRecos.beginTransMap.getData() + transRecos.beginTransMap.getDataSize(), fdata3);
|
||||||
BeginTransMap.Data = fdata;
|
BeginTransMap.Data = fdata3;
|
||||||
params.push_back(BeginTransMap);
|
params.push_back(BeginTransMap);
|
||||||
|
|
||||||
Matrix_t DeltaTransMap{nullptr,
|
Matrix_t DeltaTransMap{nullptr,
|
||||||
@@ -155,9 +155,9 @@ namespace Recon {
|
|||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
1};
|
1};
|
||||||
fdata = new float[1]{0};
|
auto fdata4 = new float[1]{0};
|
||||||
fdata[0] = transRecos.deltaTransMap;
|
fdata4[0] = transRecos.deltaTransMap;
|
||||||
DeltaTransMap.Data = fdata;
|
DeltaTransMap.Data = fdata4;
|
||||||
params.push_back(DeltaTransMap);
|
params.push_back(DeltaTransMap);
|
||||||
|
|
||||||
Matrix_t AttenuationMap3D{nullptr,
|
Matrix_t AttenuationMap3D{nullptr,
|
||||||
@@ -166,10 +166,10 @@ namespace Recon {
|
|||||||
(size_t)transRecos.attenuationMap3D.getDimSize(1),
|
(size_t)transRecos.attenuationMap3D.getDimSize(1),
|
||||||
(size_t)transRecos.attenuationMap3D.getDimSize(2)},
|
(size_t)transRecos.attenuationMap3D.getDimSize(2)},
|
||||||
transRecos.attenuationMap3D.getDataSize()};
|
transRecos.attenuationMap3D.getDataSize()};
|
||||||
fdata = new float[transRecos.attenuationMap3D.getDataSize()]{0};
|
auto fdata5 = new float[transRecos.attenuationMap3D.getDataSize()]{0};
|
||||||
std::copy(transRecos.attenuationMap3D.getData(),
|
std::copy(transRecos.attenuationMap3D.getData(),
|
||||||
transRecos.attenuationMap3D.getData() + transRecos.attenuationMap3D.getDataSize(), fdata);
|
transRecos.attenuationMap3D.getData() + transRecos.attenuationMap3D.getDataSize(), fdata5);
|
||||||
AttenuationMap3D.Data = fdata;
|
AttenuationMap3D.Data = fdata5;
|
||||||
params.push_back(AttenuationMap3D);
|
params.push_back(AttenuationMap3D);
|
||||||
|
|
||||||
float imageResolution_v = (float)reflectParams::imageResolution;
|
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(0), (size_t)Env.getDimSize(1),
|
||||||
(size_t)Env.getDimSize(2)},
|
(size_t)Env.getDimSize(2)},
|
||||||
Env.getDataSize()};
|
Env.getDataSize()};
|
||||||
float *Envdata = new float[Env.getDataSize()]{0};
|
_Env.Data = Env.getData();
|
||||||
std::copy(Env.getData(), Env.getData() + Env.getDataSize(),
|
|
||||||
Envdata);
|
|
||||||
_Env.Data = Envdata;
|
|
||||||
params.push_back(_Env);
|
params.push_back(_Env);
|
||||||
|
|
||||||
int blockXYZ_v[3]{(int)reflectParams::blockDimXYZ[0],(int)reflectParams::blockDimXYZ[1],(int)reflectParams::blockDimXYZ[2]};
|
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){
|
if (reflectParams::useAscanIndex == 0){
|
||||||
Matrix_t medianWindowSize{&reflectParams::medianWindowSize,1,{1,1,1},1};
|
Matrix_t medianWindowSize{&reflectParams::medianWindowSize,1,{1,1,1},1};
|
||||||
|
params.push_back(medianWindowSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
int other[2]={reflectParams::debugMode, reflectParams::attenuationCorrectionLimit} ;
|
int other[2]={reflectParams::debugMode, reflectParams::attenuationCorrectionLimit} ;
|
||||||
@@ -219,10 +217,32 @@ namespace Recon {
|
|||||||
params.push_back(otherP);
|
params.push_back(otherP);
|
||||||
if (reflectParams::useAscanIndex == 0) {
|
if (reflectParams::useAscanIndex == 0) {
|
||||||
auto result = SAFT_ATT(params);
|
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],
|
return Aurora::Matrix::fromRawData((double *)result.Data, result.Dims[0],
|
||||||
result.Dims[1], result.Dims[2]);
|
result.Dims[1], result.Dims[2]);
|
||||||
} else {
|
} else {
|
||||||
auto result = SAFT_TOFI(params);
|
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],
|
return Aurora::Matrix::fromRawData((double *)result.Data, result.Dims[0],
|
||||||
result.Dims[1], result.Dims[2]);
|
result.Dims[1], result.Dims[2]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ Aurora::Matrix Recon::startReflectionReconstruction( Parser* aParser, int aSAFT_
|
|||||||
removeDataFromArrays(blockData.receiverPositionBlock, preprocessData.usedData),
|
removeDataFromArrays(blockData.receiverPositionBlock, preprocessData.usedData),
|
||||||
removeDataFromArrays(blockData.mpBlock, preprocessData.usedData),
|
removeDataFromArrays(blockData.mpBlock, preprocessData.usedData),
|
||||||
aSAFT_mode, aTransRecos, Env);
|
aSAFT_mode, aTransRecos, Env);
|
||||||
|
printf("%d\n",j);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user