84 lines
3.6 KiB
C++
84 lines
3.6 KiB
C++
#ifndef __TRANS_DETECTION_H__
|
|
#define __TRANS_DETECTION_H__
|
|
#include "Matrix.h"
|
|
namespace Recon {
|
|
struct SearchPosition {
|
|
Aurora::Matrix startSearch;
|
|
Aurora::Matrix endSearch;
|
|
};
|
|
struct TimeWindowResult {
|
|
Aurora::Matrix startSearch;
|
|
Aurora::Matrix AscanBlockProcessed;
|
|
};
|
|
|
|
struct DetectResult {
|
|
Aurora::Matrix tof;
|
|
Aurora::Matrix sosValue;
|
|
Aurora::Matrix att;
|
|
};
|
|
Aurora::Matrix calculateAttenuation(const Aurora::Matrix &ascans,
|
|
const Aurora::Matrix &startPos,
|
|
const Aurora::Matrix &endPos,
|
|
const Aurora::Matrix &ascansRef,
|
|
const Aurora::Matrix &startPosRef,
|
|
const Aurora::Matrix &endPosRef);
|
|
|
|
SearchPosition
|
|
calculateStarEndSearchPosition(const Aurora::Matrix &aVDistBlock,
|
|
float minSpeedOfSound, float maxSpeedOfSound,
|
|
float sampleRate, float maxSample,
|
|
const Aurora::Matrix &aVSosOffsetBlock,
|
|
float startOffset, float segmentLenOffset);
|
|
|
|
TimeWindowResult applyTimeWindowing(
|
|
const Aurora::Matrix &AscanBlock, float sampleRate,
|
|
const Aurora::Matrix &distBlock, const Aurora::Matrix &sosBlock,
|
|
float expectedSOSWater, float startOffset, float segmentLenOffset,
|
|
float minSpeedOfSound, float maxSpeedOfSound, bool gaussWindow);
|
|
|
|
Aurora::Matrix
|
|
detectAttVectorized(const Aurora::Matrix &Ascan, const Aurora::Matrix &AscanRef,
|
|
const Aurora::Matrix &distRef,
|
|
const Aurora::Matrix &sosWaterRef,
|
|
const Aurora::Matrix &tof, int aScanReconstructionFrequency,
|
|
float offsetElectronic, int detectionWindowATT);
|
|
|
|
DetectResult
|
|
detectTofVectorized(
|
|
const Aurora::Matrix &AscanBlock, const Aurora::Matrix &AscanRefBlock,
|
|
const Aurora::Matrix &distBlock, const Aurora::Matrix &distBlockRef,
|
|
const Aurora::Matrix &sosWaterBlock,
|
|
const Aurora::Matrix &sosWaterRefBlock, float expectedSOSWater,
|
|
int useTimeWindowing, int aScanReconstructionFrequency,
|
|
float offsetElectronic, int detectionWindowSOS, float minSpeedOfSound,
|
|
float maxSpeedOfSound, bool gaussWindow);
|
|
|
|
DetectResult
|
|
detectTofAndAtt(
|
|
const Aurora::Matrix &AscanBlock, const Aurora::Matrix &AscanRefBlock,
|
|
const Aurora::Matrix &distBlock, const Aurora::Matrix &distRefBlock,
|
|
const Aurora::Matrix &sosWaterBlock, const Aurora::Matrix &sosWaterRefBlock,
|
|
int resampleFactor, int nthreads, float expectedSOSWater,
|
|
int useTimeWindowing, int aScanReconstructionFrequency,
|
|
int detectionWindowATT, float offsetElectronic, int detectionWindowSOS,
|
|
float minSpeedOfSound, float maxSpeedOfSound, bool gaussWindow);
|
|
|
|
DetectResult
|
|
detectTofAndAttMex(
|
|
const Aurora::Matrix &AscanBlock, const Aurora::Matrix &AscanRefBlock,
|
|
const Aurora::Matrix &distBlock, const Aurora::Matrix &distBlockRef,
|
|
const Aurora::Matrix &sosWaterBlock, const Aurora::Matrix &sosWaterRefBlock,
|
|
int resampleFactor, int nthreads, float expectedSOSWater,
|
|
int useTimeWindowing, int aScanReconstructionFrequency,
|
|
int detectionWindowATT, float offsetElectronic, int detectionWindowSOS,
|
|
float minSpeedOfSound, float maxSpeedOfSound, bool gaussWindow);
|
|
|
|
DetectResult
|
|
transmissionDetection(
|
|
const Aurora::Matrix &AscanBlock, const Aurora::Matrix &AscanRefBlock,
|
|
const Aurora::Matrix &distBlock, const Aurora::Matrix &distRefBlock,
|
|
const Aurora::Matrix &sosWaterBlock, const Aurora::Matrix &sosWaterRefBlock, float expectedSOSWater);
|
|
|
|
} // namespace Recon
|
|
|
|
#endif // __DETECTION_H__
|