JFJochFrameSerializer: Using CBORImage for mask and calibration + writing calibration in HDF5 file
This commit is contained in:
@@ -126,30 +126,6 @@ inline void CBOR_ENC_2D_TYPED_ARRAY(CborEncoder &encoder, const CBORImage& image
|
||||
cborErr(cbor_encoder_close_container(&encoder, &arrayEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC_PIXEL_MASK(CborEncoder &encoder, const char* key,
|
||||
const std::map<std::string, std::vector<uint32_t>> &pixel_mask,
|
||||
size_t xpixel, size_t ypixel) {
|
||||
CborEncoder mapEncoder;
|
||||
cborErr(cbor_encode_text_stringz(&encoder, key));
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, pixel_mask.size()));
|
||||
for (auto &[pixel_mask_key, pixel_mask_array]: pixel_mask) {
|
||||
CBORImage image{
|
||||
.data = reinterpret_cast<const uint8_t *>(pixel_mask_array.data()),
|
||||
.size = pixel_mask_array.size() * sizeof(uint32_t),
|
||||
.xpixel = xpixel,
|
||||
.ypixel = ypixel,
|
||||
.pixel_depth_bytes = sizeof(uint32_t),
|
||||
.pixel_is_signed = false,
|
||||
.pixel_is_float = false,
|
||||
.algorithm = CompressionAlgorithm::NO_COMPRESSION,
|
||||
.channel = pixel_mask_key
|
||||
};
|
||||
CBOR_ENC_2D_TYPED_ARRAY(mapEncoder, image);
|
||||
}
|
||||
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC(CborEncoder &encoder, const char* key, const std::vector<float>& v) {
|
||||
CborEncoder arrayEncoder;
|
||||
|
||||
@@ -392,7 +368,7 @@ void JFJochFrameSerializer::SerializeSequenceStart(const StartMessage& message)
|
||||
CBOR_ENC_GONIOMETER_MAP(mapEncoder, "goniometer", message.goniometer);
|
||||
|
||||
CBOR_ENC_USER_DATA(mapEncoder, message);
|
||||
CBOR_ENC_PIXEL_MASK(mapEncoder, "pixel_mask", message.pixel_mask, message.image_size_x, message.image_size_y);
|
||||
CBOR_ENC(mapEncoder, "pixel_mask", message.pixel_mask);
|
||||
CBOR_ENC_CHANNELS(mapEncoder, "channels", message.channels);
|
||||
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
|
||||
Reference in New Issue
Block a user