Preparing Images¶
This example demonstrates how to prepare images for compression using DPCore.
Image preparation is a required step before compression. It performs noise replacement based on camera calibration parameters. The image buffer is modified in-place.
There are two functions available for image preparation:
dpcore_prepare_image()- Performs full noise replacementdpcore_embed_meta()- Only embeds metadata (more efficient when compressing immediately)
Example¶
#include "dpcore/dpcore.h"
#include "jetraw/dp_status.h"
#include <iostream>
int main() {
// Assume image buffer is already loaded
uint16_t* imageBuffer;
uint32_t WIDTH = 2560;
uint32_t HEIGHT = 2160;
int32_t PIXELS = WIDTH * HEIGHT;
// Prepare the image using full noise replacement
dp_status status = dpcore_prepare_image(
imageBuffer,
PIXELS,
"calibration_identifier",
1.0f // error_bound (default: 1.0)
);
if (status != dp_success) {
std::cerr << "Failed to prepare image: "
<< dp_status_description(status) << '\n';
return 1;
}
// Image is now prepared and ready for compression
// ... rest of your code ...
}
Alternative: Embed Metadata Only¶
If you plan to compress the image immediately, you can use dpcore_embed_meta()
instead, which avoids redundant quantization/de-quantization:
// Only embed metadata (more efficient for immediate compression)
dp_status status = dpcore_embed_meta(
imageBuffer,
PIXELS,
"calibration_identifier",
1.0f // error_bound
);
Notes¶
The image buffer is modified in-place during preparation.
If an image is already prepared, calling these functions again will return
dp_successwithout modifying the image.The calibration identifier must match one of the identifiers available in your calibration file. Use
dpcore_get_identifiers()to list available identifiers.
See Also¶
Efficient Preparation and Compression for using embed_meta with immediate compression
C API Reference for complete API reference