1.3.49
 
Loading...
Searching...
No Matches
RadiationCamera Struct Reference

Data object for a radiation camera. More...

#include <RadiationModel.h>

Public Member Functions

 RadiationCamera (std::string initlabel, const std::vector< std::string > &band_label, const helios::vec3 &initposition, const helios::vec3 &initlookat, const CameraProperties &camera_properties, uint initantialiasing_samples)
 
void normalizePixels ()
 Normalize all pixel data in the camera such that the maximum pixel value is 1.0 and the minimum is 0.0 (no clamping applied)
 
void whiteBalance (const std::string &red_band_label, const std::string &green_band_label, const std::string &blue_band_label, float p=5.0)
 Apply auto-exposure scaling to image data to scale the average luminance to a target value.
 
void whiteBalanceGrayEdge (const std::string &red_band_label, const std::string &green_band_label, const std::string &blue_band_label, int derivative_order=1, float p=5.0)
 Apply Gray Edge white balancing algorithm.
 
void whiteBalanceWhitePatch (const std::string &red_band_label, const std::string &green_band_label, const std::string &blue_band_label, float percentile=0.99f)
 Apply White Patch white balancing algorithm.
 
void whiteBalanceAuto (const std::string &red_band_label, const std::string &green_band_label, const std::string &blue_band_label)
 Automatically select and apply best white balance algorithm based on scene analysis.
 
void applyCameraSpectralCorrection (const std::string &red_band_label, const std::string &green_band_label, const std::string &blue_band_label, helios::Context *context)
 Apply camera spectral response pre-correction to compensate for known sensor bias.
 
void reinhardToneMapping (const std::string &red_band_label, const std::string &green_band_label, const std::string &blue_band_label)
 Apply Reinhard tone mapping curve to image data.
 
void applyGain (const std::string &red_band_label, const std::string &green_band_label, const std::string &blue_band_label, float percentile=0.95f)
 Apply image gain.
 
void adjustSBC (const std::string &red_band_label, const std::string &green_band_label, const std::string &blue_band_label, float saturation, float brightness, float contrast)
 Applies HDR toning to the specified color bands based on the local adaptation method.
 
void gammaCompress (const std::string &red_band_label, const std::string &green_band_label, const std::string &blue_band_label)
 Apply the color correction matrix to image data.
 
void globalHistogramEqualization (const std::string &red_band_label, const std::string &green_band_label, const std::string &blue_band_label)
 Performs global histogram equalization on the specified color bands.
 
void autoExposure (const std::string &red_band_label, const std::string &green_band_label, const std::string &blue_band_label, float gain_multiplier)
 Apply percentile-based auto-exposure to optimize scene brightness.
 
void adjustBrightnessContrast (const std::string &red_band_label, const std::string &green_band_label, const std::string &blue_band_label, float brightness, float contrast)
 Adjust brightness and contrast of image data.
 
void adjustSaturation (const std::string &red_band_label, const std::string &green_band_label, const std::string &blue_band_label, float saturation)
 Adjust color saturation of image data.
 

Data Fields

std::string label
 
helios::vec3 position
 
helios::vec3 lookat
 
float lens_diameter
 
helios::int2 resolution
 
float focal_length
 
float HFOV_degrees
 
float FOV_aspect_ratio
 
uint antialiasing_samples
 
std::vector< std::string > band_labels
 
std::map< std::string, std::string > band_spectral_response
 
std::map< std::string, std::vector< float > > pixel_data
 
std::vector< uintpixel_label_UUID
 
std::vector< float > pixel_depth
 

Detailed Description

Data object for a radiation camera.

Definition at line 68 of file RadiationModel.h.

Constructor & Destructor Documentation

◆ RadiationCamera()

RadiationCamera::RadiationCamera ( std::string  initlabel,
const std::vector< std::string > &  band_label,
const helios::vec3 initposition,
const helios::vec3 initlookat,
const CameraProperties camera_properties,
uint  initantialiasing_samples 
)
inline

Definition at line 71 of file RadiationModel.h.

Member Function Documentation

◆ adjustBrightnessContrast()

void RadiationCamera::adjustBrightnessContrast ( const std::string &  red_band_label,
const std::string &  green_band_label,
const std::string &  blue_band_label,
float  brightness,
float  contrast 
)

Adjust brightness and contrast of image data.

Parameters
[in]red_band_labelLabel for red channel band
[in]green_band_labelLabel for green channel band
[in]blue_band_labelLabel for blue channel band
[in]brightnessBrightness adjustment factor (1.0 = no change)
[in]contrastContrast adjustment factor (1.0 = no change)

Definition at line 2810 of file RadiationCamera.cpp.

◆ adjustSaturation()

void RadiationCamera::adjustSaturation ( const std::string &  red_band_label,
const std::string &  green_band_label,
const std::string &  blue_band_label,
float  saturation 
)

Adjust color saturation of image data.

Parameters
[in]red_band_labelLabel for red channel band
[in]green_band_labelLabel for green channel band
[in]blue_band_labelLabel for blue channel band
[in]saturationSaturation adjustment factor (1.0 = no change, 0.0 = grayscale, >1.0 = more saturated)

Definition at line 2841 of file RadiationCamera.cpp.

◆ adjustSBC()

void RadiationCamera::adjustSBC ( const std::string &  red_band_label,
const std::string &  green_band_label,
const std::string &  blue_band_label,
float  saturation,
float  brightness,
float  contrast 
)

Applies HDR toning to the specified color bands based on the local adaptation method.

Parameters
[in]red_band_labelLabel for the red color band to be processed.
[in]green_band_labelLabel for the green color band to be processed.
[in]blue_band_labelLabel for the blue color band to be processed.

Definition at line 2685 of file RadiationCamera.cpp.

◆ applyCameraSpectralCorrection()

void RadiationCamera::applyCameraSpectralCorrection ( const std::string &  red_band_label,
const std::string &  green_band_label,
const std::string &  blue_band_label,
helios::Context context 
)

Apply camera spectral response pre-correction to compensate for known sensor bias.

Computes correction factors based on camera spectral response curves to neutralize the inherent spectral bias of the camera sensor before white balance.

Parameters
[in]red_band_labelLabel for red channel band
[in]green_band_labelLabel for green channel band
[in]blue_band_labelLabel for blue channel band
[in]contextPointer to Helios context for accessing spectral data

Definition at line 2453 of file RadiationCamera.cpp.

◆ applyGain()

void RadiationCamera::applyGain ( const std::string &  red_band_label,
const std::string &  green_band_label,
const std::string &  blue_band_label,
float  percentile = 0.95f 
)

Apply image gain.

Computes the specified percentile of the per-pixel maximum channel values and multiplies all channels by the reciprocal of that percentile so that it is mapped to full white (1.0).

Parameters
[in]red_band_labelLabel for red channel band
[in]green_band_labelLabel for green channel band
[in]blue_band_labelLabel for blue channel band
[in]percentile[optional] Percentile to use for gain computation (e.g., 0.9 for 90th percentile).

Definition at line 2569 of file RadiationCamera.cpp.

◆ autoExposure()

void RadiationCamera::autoExposure ( const std::string &  red_band_label,
const std::string &  green_band_label,
const std::string &  blue_band_label,
float  gain_multiplier 
)

Apply percentile-based auto-exposure to optimize scene brightness.

Parameters
[in]red_band_labelLabel for red channel band
[in]green_band_labelLabel for green channel band
[in]blue_band_labelLabel for blue channel band
[in]gain_multiplierAdditional gain factor to apply after auto-exposure

Definition at line 2760 of file RadiationCamera.cpp.

◆ gammaCompress()

void RadiationCamera::gammaCompress ( const std::string &  red_band_label,
const std::string &  green_band_label,
const std::string &  blue_band_label 
)

Apply the color correction matrix to image data.

Parameters
[in]red_band_labelLabel for red channel band
[in]green_band_labelLabel for green channel band
[in]blue_band_labelLabel for blue channel band Apply gamma compression to image data Applies the standard sRGB electro-optical transfer function to each channel of a linear-light image—clamping negatives to zero and limiting outputs to [0,1]—thereby encoding the data into display-ready sRGB space. This final step ensures that pixel values map correctly to human‐perceived brightness on typical monitors.
[in]red_band_labelLabel for red channel band
[in]green_band_labelLabel for green channel band
[in]blue_band_labelLabel for blue channel band

Definition at line 2739 of file RadiationCamera.cpp.

◆ globalHistogramEqualization()

void RadiationCamera::globalHistogramEqualization ( const std::string &  red_band_label,
const std::string &  green_band_label,
const std::string &  blue_band_label 
)

Performs global histogram equalization on the specified color bands.

Parameters
[in]red_band_labelLabel for the red band to be processed.
[in]green_band_labelLabel for the green band to be processed.
[in]blue_band_labelLabel for the blue band to be processed.

Definition at line 2601 of file RadiationCamera.cpp.

◆ normalizePixels()

void RadiationCamera::normalizePixels ( )

Normalize all pixel data in the camera such that the maximum pixel value is 1.0 and the minimum is 0.0 (no clamping applied)

Definition at line 2136 of file RadiationCamera.cpp.

◆ reinhardToneMapping()

void RadiationCamera::reinhardToneMapping ( const std::string &  red_band_label,
const std::string &  green_band_label,
const std::string &  blue_band_label 
)

Apply Reinhard tone mapping curve to image data.

The Reinhard curve applies a simple global tone mapping to compress high dynamic range into displayable range while preserving chroma.

Parameters
[in]red_band_labelLabel for red channel band
[in]green_band_labelLabel for green channel band
[in]blue_band_labelLabel for blue channel band

Definition at line 2544 of file RadiationCamera.cpp.

◆ whiteBalance()

void RadiationCamera::whiteBalance ( const std::string &  red_band_label,
const std::string &  green_band_label,
const std::string &  blue_band_label,
float  p = 5.0 
)

Apply auto-exposure scaling to image data to scale the average luminance to a target value.

Computes the image’s mean luminance and applies a single uniform gain so that the scene-average luminance becomes the specified grey_target value.

Parameters
[in]target[optional] Target average luminance value. Default is 18%. Apply auto-white balancing to image data based on Gray World assumption using Minkowski mean
[in]red_band_labelLabel for red channel band
[in]green_band_labelLabel for green channel band
[in]blue_band_labelLabel for blue channel band
[in]p[optional] Minkowski mean parameter. Default is 5.0.

Definition at line 2158 of file RadiationCamera.cpp.

◆ whiteBalanceAuto()

void RadiationCamera::whiteBalanceAuto ( const std::string &  red_band_label,
const std::string &  green_band_label,
const std::string &  blue_band_label 
)

Automatically select and apply best white balance algorithm based on scene analysis.

Analyzes scene characteristics and applies the most appropriate white balance method.

Parameters
[in]red_band_labelLabel for red channel band
[in]green_band_labelLabel for green channel band
[in]blue_band_labelLabel for blue channel band

Definition at line 2390 of file RadiationCamera.cpp.

◆ whiteBalanceGrayEdge()

void RadiationCamera::whiteBalanceGrayEdge ( const std::string &  red_band_label,
const std::string &  green_band_label,
const std::string &  blue_band_label,
int  derivative_order = 1,
float  p = 5.0 
)

Apply Gray Edge white balancing algorithm.

Uses edge information to estimate illuminant, assuming edge differences are achromatic on average. Works better than Gray World for vegetation and textured scenes.

Parameters
[in]red_band_labelLabel for red channel band
[in]green_band_labelLabel for green channel band
[in]blue_band_labelLabel for blue channel band
[in]derivative_order[optional] Order of derivative (1 or 2). Default is 1.
[in]p[optional] Minkowski norm parameter. Default is 5.0.

Definition at line 2222 of file RadiationCamera.cpp.

◆ whiteBalanceWhitePatch()

void RadiationCamera::whiteBalanceWhitePatch ( const std::string &  red_band_label,
const std::string &  green_band_label,
const std::string &  blue_band_label,
float  percentile = 0.99f 
)

Apply White Patch white balancing algorithm.

Assumes brightest pixels in the scene represent white objects under the illuminant.

Parameters
[in]red_band_labelLabel for red channel band
[in]green_band_labelLabel for green channel band
[in]blue_band_labelLabel for blue channel band
[in]percentile[optional] Percentile of brightest pixels to use. Default is 0.99 (top 1%).

Definition at line 2343 of file RadiationCamera.cpp.

Field Documentation

◆ antialiasing_samples

uint RadiationCamera::antialiasing_samples

Definition at line 100 of file RadiationModel.h.

◆ band_labels

std::vector<std::string> RadiationCamera::band_labels

Definition at line 102 of file RadiationModel.h.

◆ band_spectral_response

std::map<std::string, std::string> RadiationCamera::band_spectral_response

Definition at line 104 of file RadiationModel.h.

◆ focal_length

float RadiationCamera::focal_length

Definition at line 94 of file RadiationModel.h.

◆ FOV_aspect_ratio

float RadiationCamera::FOV_aspect_ratio

Definition at line 98 of file RadiationModel.h.

◆ HFOV_degrees

float RadiationCamera::HFOV_degrees

Definition at line 96 of file RadiationModel.h.

◆ label

std::string RadiationCamera::label

Definition at line 84 of file RadiationModel.h.

◆ lens_diameter

float RadiationCamera::lens_diameter

Definition at line 90 of file RadiationModel.h.

◆ lookat

helios::vec3 RadiationCamera::lookat

Definition at line 88 of file RadiationModel.h.

◆ pixel_data

std::map<std::string, std::vector<float> > RadiationCamera::pixel_data

Definition at line 106 of file RadiationModel.h.

◆ pixel_depth

std::vector<float> RadiationCamera::pixel_depth

Definition at line 109 of file RadiationModel.h.

◆ pixel_label_UUID

std::vector<uint> RadiationCamera::pixel_label_UUID

Definition at line 108 of file RadiationModel.h.

◆ position

helios::vec3 RadiationCamera::position

Definition at line 86 of file RadiationModel.h.

◆ resolution

helios::int2 RadiationCamera::resolution

Definition at line 92 of file RadiationModel.h.


The documentation for this struct was generated from the following files: