NeuralNetInferenceClient: Accept PixelMask
This commit is contained in:
@@ -18,6 +18,8 @@ TEST_CASE("NeuralNetResPredictor_Prepare", "[LinearAlgebra][Coord]") {
|
||||
v[1001 * experiment.GetXPixelsNum() + 1000] = 30;
|
||||
v[1001 * experiment.GetXPixelsNum() + 1001] = INT16_MIN;
|
||||
|
||||
v[600 * experiment.GetXPixelsNum() + 600] = 121;
|
||||
|
||||
v[1050 * experiment.GetXPixelsNum() + 1050] = 52;
|
||||
v[2000 * experiment.GetXPixelsNum() + 1500] = 160;
|
||||
|
||||
@@ -29,22 +31,64 @@ TEST_CASE("NeuralNetResPredictor_Prepare", "[LinearAlgebra][Coord]") {
|
||||
|
||||
REQUIRE(predictor.GetMaxPoolFactor(experiment) == 2);
|
||||
|
||||
auto br = predictor.Prepare(experiment, v.data(), Quarter::BottomRight);
|
||||
PixelMask mask(experiment);
|
||||
std::vector<uint32_t> mask_vec(experiment.GetPixelsNum());
|
||||
|
||||
mask.LoadUserMask(experiment, mask_vec);
|
||||
|
||||
auto br = predictor.Prepare(experiment, mask, v.data(), Quarter::BottomRight);
|
||||
REQUIRE(br.size() == 512 * 512);
|
||||
CHECK(br[0] == 10);
|
||||
CHECK(br[25 * 512 + 25] == 7);
|
||||
CHECK(br[500 * 512 + 250] == 12);
|
||||
|
||||
auto tl = predictor.Prepare(experiment, v.data(), Quarter::TopLeft);
|
||||
auto tl = predictor.Prepare(experiment, mask, v.data(), Quarter::TopLeft);
|
||||
REQUIRE(tl.size() == 512 * 512);
|
||||
CHECK(tl[100 * 512 + 200] == 7);
|
||||
CHECK(tl[200 * 512 + 200] == 11);
|
||||
|
||||
auto tr = predictor.Prepare(experiment, v.data(), Quarter::TopRight);
|
||||
auto tr = predictor.Prepare(experiment, mask, v.data(), Quarter::TopRight);
|
||||
REQUIRE(tr.size() == 512 * 512);
|
||||
CHECK(tr[100 * 512 + 200] == 8);
|
||||
|
||||
|
||||
auto bl = predictor.Prepare(experiment, v.data(), Quarter::BottomLeft);
|
||||
auto bl = predictor.Prepare(experiment, mask, v.data(), Quarter::BottomLeft);
|
||||
REQUIRE(bl.size() == 512 * 512);
|
||||
CHECK(bl[100 * 512 + 200] == 6);
|
||||
}
|
||||
|
||||
TEST_CASE("NeuralNetResPredictor_Prepare_PixelMask", "[LinearAlgebra][Coord]") {
|
||||
DiffractionExperiment experiment(DetJF4M());
|
||||
experiment.DetectorDistance_mm(75).IncidentEnergy_keV(12.4).BeamX_pxl(1000).BeamY_pxl(1000);
|
||||
|
||||
std::vector<int16_t> v(experiment.GetPixelsNum(),0);
|
||||
v[1000 * experiment.GetXPixelsNum() + 1000] = 100;
|
||||
v[1000 * experiment.GetXPixelsNum() + 1001] = 20;
|
||||
v[1001 * experiment.GetXPixelsNum() + 1000] = 30;
|
||||
v[1001 * experiment.GetXPixelsNum() + 1001] = INT16_MIN;
|
||||
|
||||
v[600 * experiment.GetXPixelsNum() + 600] = 121;
|
||||
|
||||
v[1050 * experiment.GetXPixelsNum() + 1050] = 52;
|
||||
v[2000 * experiment.GetXPixelsNum() + 1500] = 160;
|
||||
|
||||
v[800 * experiment.GetXPixelsNum() + 600] = 49;
|
||||
v[1200 * experiment.GetXPixelsNum() + 600] = 36;
|
||||
v[800 * experiment.GetXPixelsNum() + 1400] = 64;
|
||||
|
||||
NeuralNetInferenceClient predictor;
|
||||
|
||||
REQUIRE(predictor.GetMaxPoolFactor(experiment) == 2);
|
||||
|
||||
PixelMask mask(experiment);
|
||||
std::vector<uint32_t> mask_vec(experiment.GetPixelsNum());
|
||||
|
||||
mask_vec[600 * experiment.GetXPixelsNum() + 600] = 8;
|
||||
|
||||
mask.LoadUserMask(experiment, mask_vec);
|
||||
|
||||
auto tl = predictor.Prepare(experiment, mask, v.data(), Quarter::TopLeft);
|
||||
REQUIRE(tl.size() == 512 * 512);
|
||||
CHECK(tl[100 * 512 + 200] == 7);
|
||||
CHECK(tl[200 * 512 + 200] == 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user