RadialIntegrationMapping: No mask

This commit is contained in:
2023-10-21 17:20:12 +02:00
parent b4ab3087f1
commit dd4988486c
5 changed files with 6 additions and 25 deletions
+2 -4
View File
@@ -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);
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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);
-18
View File
@@ -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);
+2 -1
View File
@@ -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);