Add removeDataFromArrays.

Fix dataFilter to use transparams.
This commit is contained in:
sunwen
2023-05-25 16:19:08 +08:00
parent 5bd7a15238
commit 9837c425d1
8 changed files with 84 additions and 21 deletions

View File

@@ -3,21 +3,22 @@
#include "Function2D.h"
#include "Function3D.h"
#include "src/config/config.h"
#define PI 3.141592653589793238462
using namespace Aurora;
namespace Recon {
Matrix filterReflectionData(const Matrix &aVReceiverPositionBlock,
const Matrix &aVSenderPositionBlock,
const Matrix &aVSenderNormalBlock,
int aConstrictReflectionAngles,
double aAngleLowerLimit, double aAngleUpperLimit) {
int aConstrictReflectionAngles) {
auto reflectData = ones(1, aVReceiverPositionBlock.getDimSize(1));
if (aConstrictReflectionAngles == 1) {
auto positionDifs = aVReceiverPositionBlock - aVSenderPositionBlock;
auto inbetweenAngle = acos(dot(aVSenderNormalBlock, positionDifs) /
vecnorm(positionDifs, Norm2, 1));
auto flags = Aurora::auroraNot((inbetweenAngle < (PI * aAngleLowerLimit / 180)) +
(inbetweenAngle > (PI * aAngleUpperLimit / 180)));
auto flags = Aurora::auroraNot((inbetweenAngle < (PI * transParams::angleLowerLimit / 180)) +
(inbetweenAngle > (PI * transParams::angleUpperLimit / 180)));
reflectData = reflectData * flags;
}
return reflectData;

View File

@@ -6,9 +6,7 @@ namespace Recon {
Aurora::Matrix filterReflectionData(const Aurora::Matrix &aVReceiverPositionBlock,
const Aurora::Matrix &aVSenderPositionBlock,
const Aurora::Matrix &aVSenderNormalBlock,
int aConstrictReflectionAngles,
double aAngleLowerLimit,
double aAngleUpperLimit);
int aConstrictReflectionAngles);
}