Creating Custom Calibration Profiles
====================================
.. c:namespace:: standalone
Jetraw Standalone can register sensor calibration profiles directly in code,
without any ``.dat`` file. This is useful when the sensor's characterization
parameters — following the `EMVA 1288 standard
`_ — are known, e.g.
from the camera datasheet or from your own characterization measurements, and
is the way to configure calibration on systems without filesystem access.
A profile consists of a ``JetrawEMVAParameters`` struct registered under an
identifier of your choice. The identifier is then used for image preparation
like any identifier loaded from a calibration file.
Example
-------
.. code-block:: cpp
#include "jetraw_standalone.h"
#include
int main() {
// Sensor characterization for one fixed configuration
// (gain setting, bit depth, CFA pattern)
JetrawEMVAParameters params;
params.gain = 0.45f; // system gain in DN/e-
params.black_level = 100.0f; // black level in DN
params.readout_noise = 1.6f; // temporal dark noise in DN RMS
params.pixel_max = 65535; // saturation value in DN
params.cfa = kBayerRG; // Bayer pattern, R,G on the top row
dp_status status = dpcore_set_emva_parameters(¶ms, "my-camera-gain1");
if (status != dp_success) {
std::cerr << "Could not register profile: "
<< dp_status_description(status) << '\n';
return 1;
}
// The identifier can now be used for image preparation
// dpcore_prepare_image(image_buffer, num_pixels, "my-camera-gain1");
}
A registered profile can be read back at any time:
.. code-block:: cpp
JetrawEMVAParameters check;
dp_status status = dpcore_get_emva_parameters("my-camera-gain1", &check);
Notes
-----
- All fields refer to a single, fixed sensor configuration. If the camera is
operated at several gain settings, register one profile per setting, each
under its own identifier.
- Registering an identifier that already exists fails with
``dp_parameter_error``; choose a unique name per configuration.
- Custom profiles are held in memory and live for the duration of the
process; they are not persisted to disk.
- The quality of the compression depends directly on the accuracy of the
parameters. When in doubt, contact Dotphoton for a proper camera
calibration.
See Also
--------
- :c:struct:`JetrawEMVAParameters`
- :c:func:`dpcore_set_emva_parameters`
- :c:func:`dpcore_get_emva_parameters`
- :doc:`using_calibration_files` for the file-based alternative