Improve plotting
This commit is contained in:
@@ -31,6 +31,9 @@ TEST_CASE("PreviewImage_GenerateJPEG","[JPEG]") {
|
||||
.DetectorDistance_mm(75).BeamY_pxl(1136).BeamX_pxl(1090).PhotonEnergy_keV(12.4)
|
||||
.SetUnitCell(UnitCell{.a = 36.9, .b = 78.95, .c = 78.95, .alpha =90, .beta = 90, .gamma = 90});
|
||||
|
||||
experiment.ROI().SetROIBox({ROIBox("roi0", 800, 1200, 800, 1200)});
|
||||
experiment.ROI().SetROICircle({ROICircle("roi2", 500, 500, 50)});
|
||||
|
||||
// Load example image
|
||||
HDF5ReadOnlyFile data("../../tests/test_data/compression_benchmark.h5");
|
||||
HDF5DataSet dataset(data, "/entry/data/data");
|
||||
@@ -68,3 +71,52 @@ TEST_CASE("PreviewImage_GenerateJPEG","[JPEG]") {
|
||||
std::ofstream f("lyso_diff.jpeg", std::ios::binary);
|
||||
f.write(s.data(), s.size());
|
||||
}
|
||||
|
||||
TEST_CASE("PreviewImage_GenerateJPEG_ROI","[JPEG]") {
|
||||
DiffractionExperiment experiment(DetectorGeometry(8,2,8,36));
|
||||
experiment.ImagesPerTrigger(5).NumTriggers(1).DataFileCount(1).UseInternalPacketGenerator(true)
|
||||
.FilePrefix("lyso_test_min_pix_2").ConversionOnFPGA(false)
|
||||
.DetectorDistance_mm(75).BeamY_pxl(1136).BeamX_pxl(1090).PhotonEnergy_keV(12.4)
|
||||
.SetUnitCell(UnitCell{.a = 36.9, .b = 78.95, .c = 78.95, .alpha =90, .beta = 90, .gamma = 90});
|
||||
|
||||
experiment.ROI().SetROIBox({ROIBox("roi0", 800, 1200, 800, 1200)});
|
||||
experiment.ROI().SetROICircle({ROICircle("roi2", 500, 500, 50)});
|
||||
|
||||
// Load example image
|
||||
HDF5ReadOnlyFile data("../../tests/test_data/compression_benchmark.h5");
|
||||
HDF5DataSet dataset(data, "/entry/data/data");
|
||||
HDF5DataSpace file_space(dataset);
|
||||
|
||||
std::vector<int16_t> image_conv (file_space.GetDimensions()[1] * file_space.GetDimensions()[2]);
|
||||
|
||||
std::vector<hsize_t> start = {4,0,0};
|
||||
std::vector<hsize_t> file_size = {1, file_space.GetDimensions()[1], file_space.GetDimensions()[2]};
|
||||
dataset.ReadVector(image_conv, start, file_size);
|
||||
|
||||
// to fill gaps with INT16_MIN
|
||||
std::vector<int16_t> image_raw_geom(experiment.GetModulesNum() * RAW_MODULE_SIZE);
|
||||
std::vector<int16_t> image_conv_2 (file_space.GetDimensions()[1] * file_space.GetDimensions()[2], INT16_MIN);
|
||||
|
||||
ConvertedToRawGeometry(experiment, image_raw_geom.data(), image_conv.data());
|
||||
RawToConvertedGeometry(experiment, image_conv_2.data(), image_raw_geom.data());
|
||||
|
||||
std::vector<SpotToSave> spots = {
|
||||
{.x = 500, .y = 400, .indexed = true},
|
||||
{.x = 800, .y = 1000, .indexed = false},
|
||||
{.x = 1200, .y = 500, .indexed = true}
|
||||
};
|
||||
PreviewImage image(experiment);
|
||||
image.UpdateImage(image_conv_2.data(), spots);
|
||||
|
||||
PreviewJPEGSettings preview_settings{
|
||||
.saturation_value = 5,
|
||||
.jpeg_quality = 70,
|
||||
.show_spots = true,
|
||||
.show_roi = true
|
||||
};
|
||||
|
||||
std::string s;
|
||||
REQUIRE_NOTHROW(s = image.GenerateJPEG(preview_settings));
|
||||
std::ofstream f("lyso_diff_roi.jpeg", std::ios::binary);
|
||||
f.write(s.data(), s.size());
|
||||
}
|
||||
Reference in New Issue
Block a user