RadialIntegrationMapping: No mask
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
#include "../common/JFJochException.h"
|
||||
#include "../common/DiffractionGeometry.h"
|
||||
|
||||
RadialIntegrationMapping::RadialIntegrationMapping(const DiffractionExperiment& experiment, const uint8_t *one_byte_mask) :
|
||||
RadialIntegrationMapping::RadialIntegrationMapping(const DiffractionExperiment& experiment) :
|
||||
low_q(experiment.GetLowQForRadialInt_recipA()),
|
||||
high_q(experiment.GetHighQForRadialInt_recipA()),
|
||||
q_spacing(experiment.GetQSpacingForRadialInt_recipA()),
|
||||
@@ -35,9 +35,7 @@ RadialIntegrationMapping::RadialIntegrationMapping(const DiffractionExperiment&
|
||||
int64_t pixel_number = y * experiment.GetXPixelsNum() + x;
|
||||
|
||||
double pixel_q = 2 * M_PI / PxlToRes(experiment, x, y);
|
||||
if (((one_byte_mask != nullptr) && (one_byte_mask[pixel_number] == 0))
|
||||
|| (pixel_q < low_q)
|
||||
|| (pixel_q >= high_q))
|
||||
if ((pixel_q < low_q) || (pixel_q >= high_q))
|
||||
pixel_to_bin[pixel_number] = UINT16_MAX;
|
||||
else
|
||||
pixel_to_bin[pixel_number] = std::floor((pixel_q - low_q) / q_spacing);
|
||||
|
||||
@@ -13,7 +13,7 @@ class RadialIntegrationMapping {
|
||||
std::vector<uint16_t> pixel_to_bin;
|
||||
uint16_t max_bin_number;
|
||||
public:
|
||||
RadialIntegrationMapping(const DiffractionExperiment& experiment, const uint8_t *one_byte_mask = nullptr);
|
||||
RadialIntegrationMapping(const DiffractionExperiment& experiment);
|
||||
[[nodiscard]] uint16_t GetBinNumber() const;
|
||||
[[nodiscard]] const std::vector<uint16_t> &GetPixelToBinMapping() const;
|
||||
[[nodiscard]] const std::vector<float> &GetBinToQ() const;
|
||||
|
||||
@@ -90,7 +90,7 @@ JFJochReceiver::JFJochReceiver(const JFJochProtoBuf::ReceiverInput &settings,
|
||||
if (!GPUImageAnalysis::GPUPresent())
|
||||
logger.Info("GPU support missing");
|
||||
|
||||
rad_int_mapping = std::make_unique<RadialIntegrationMapping>(experiment, one_byte_mask.data());
|
||||
rad_int_mapping = std::make_unique<RadialIntegrationMapping>(experiment);
|
||||
rad_int_profile = std::make_unique<RadialIntegrationProfile>(*rad_int_mapping, experiment);
|
||||
rad_int_corr = CalcRadIntCorr(experiment);
|
||||
|
||||
|
||||
@@ -24,24 +24,6 @@ TEST_CASE("RadialIntegrationMappingFPGA_Constructor","[RadialIntegration]") {
|
||||
REQUIRE_NOTHROW(radial = std::make_unique<RadialIntegrationMappingFPGA>(x, 0));
|
||||
}
|
||||
|
||||
TEST_CASE("RadialIntegrationMapping_Constructor_Mask","[RadialIntegration]") {
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
|
||||
x.DetectorDistance_mm(50).BeamX_pxl(1000).BeamY_pxl(1000);
|
||||
x.QSpacingForRadialInt_recipA(0.1).LowQForRadialInt_recipA(0.001).HighQForRadialInt_recipA(9.9);
|
||||
|
||||
std::vector<uint8_t> one_byte_mask(x.GetPixelsNum(), 1);
|
||||
one_byte_mask[456*1030+234] = 0;
|
||||
one_byte_mask[800*1030+74] = 0;
|
||||
|
||||
std::unique_ptr<RadialIntegrationMapping> radial;
|
||||
|
||||
REQUIRE_NOTHROW(radial = std::make_unique<RadialIntegrationMapping>(x, one_byte_mask.data()));
|
||||
REQUIRE(radial->GetPixelToBinMapping()[1030*512+344] != UINT16_MAX);
|
||||
REQUIRE(radial->GetPixelToBinMapping()[456*1030+234] == UINT16_MAX);
|
||||
REQUIRE(radial->GetPixelToBinMapping()[800*1030+74] == UINT16_MAX);
|
||||
}
|
||||
|
||||
TEST_CASE("RadialIntegrationMapping_GetBinNumber","[RadialIntegration]") {
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
x.DetectorDistance_mm(50).BeamX_pxl(1000).BeamY_pxl(1000);
|
||||
|
||||
@@ -82,7 +82,8 @@ int main(int argc, char **argv) {
|
||||
|
||||
GetGeometry(x, master_file);
|
||||
|
||||
RadialIntegrationMapping rad_int_map(x, one_byte_mask.data());
|
||||
//TODO: Setup Mask
|
||||
RadialIntegrationMapping rad_int_map(x);
|
||||
RadialIntegration rad_int(rad_int_map);
|
||||
|
||||
CalcRadialIntegration(x, rad_int, argv[2], first, last);
|
||||
|
||||
Reference in New Issue
Block a user