Fix findDefectTransmissionData bug.

This commit is contained in:
kradchen
2023-05-30 17:06:33 +08:00
parent bb1774c1fb
commit 9ff2717ac4
2 changed files with 10 additions and 9 deletions

View File

@@ -113,6 +113,7 @@ namespace Recon {
std_SNRListData[j++] = aVSNRList[i]; std_SNRListData[j++] = aVSNRList[i];
} }
} }
meanSNR = meanSNR/(double)j;
Aurora::Matrix std_SNRList = Aurora::Matrix::New(std_SNRListData,count,1,1); Aurora::Matrix std_SNRList = Aurora::Matrix::New(std_SNRListData,count,1,1);
std_SNRList = Aurora::std(std_SNRList); std_SNRList = Aurora::std(std_SNRList);
double localSNRDifference = 2 * std_SNRList.getScalar(); double localSNRDifference = 2 * std_SNRList.getScalar();

View File

@@ -4,6 +4,7 @@
#include "Function1D.h" #include "Function1D.h"
#include "MatlabReader.h" #include "MatlabReader.h"
#include "Matrix.h" #include "Matrix.h"
#include "config/config.h"
#include "reflectionReconstruction/dataFilter.h" #include "reflectionReconstruction/dataFilter.h"
#include "transmissionReconstruction/dataFilter/dataFilter.h" #include "transmissionReconstruction/dataFilter/dataFilter.h"
@@ -101,19 +102,18 @@ TEST_F(DataFilter_Test, calculateSnr) {
} }
TEST_F(DataFilter_Test, findDefectTransmissionData) { TEST_F(DataFilter_Test, findDefectTransmissionData) {
MatlabReader m("/home/krad/TestData/finddefect.mat"); MatlabReader m("/home/sun/testData/findDefectTransmissionData.mat");
double *dataA = new double[3]{1, std::numeric_limits<double>::infinity(), -std::numeric_limits<double>::infinity()}; double *dataA = new double[3]{1, std::numeric_limits<double>::infinity(), -std::numeric_limits<double>::infinity()};
auto SNRList = m.read("SNRList"); auto SNRList = m.read("vsnrlist");
auto SNRList2 = Aurora::Matrix::fromRawData(dataA, 3,1,1); auto SNRList2 = m.read("snrdifference");
auto result = m.read("valid"); auto validOut = m.read("validOut");
auto valid = Recon::findDefectTransmissionData(SNRList2,0.99); auto valid1 = Recon::findDefectTransmissionData(SNRList,Recon::transParams::snrThreshold);
EXPECT_DOUBLE_AE(valid[0],1); auto valid2 = Recon::findDefectTransmissionData(SNRList2,Recon::transParams::snrThreshold);
EXPECT_DOUBLE_AE(valid[1],0); auto valid = valid1*valid2;
valid = Recon::findDefectTransmissionData(SNRList,0.99);
for (size_t i = 0; i < valid.getDataSize(); i++) for (size_t i = 0; i < valid.getDataSize(); i++)
{ {
EXPECT_DOUBLE_AE(valid[i],0); EXPECT_DOUBLE_AE(validOut[i],valid[i]);
} }
} }