lensfun
0.3.99.0
|
Lens data. Unknown fields are set to NULL or 0. More...
#include <lensfun.h>
Public Member Functions | |
lfLens () | |
Create a new lens object, initializing all fields to default values. | |
lfLens (const lfLens &other) | |
~lfLens () | |
Destroy this and all associated objects. | |
lfLens & | operator= (const lfLens &other) |
void | SetMaker (const char *val, const char *lang=NULL) |
Add a string to camera maker. More... | |
void | SetModel (const char *val, const char *lang=NULL) |
Add a string to camera model. More... | |
void | AddMount (const char *val) |
Add a new mount type to this lens. More... | |
void | AddCalibDistortion (const lfLensCalibDistortion *lcd) |
Add a new distortion calibration structure to the pool. More... | |
void | AddCalibTCA (const lfLensCalibTCA *lctca) |
Add a new transversal chromatic aberration calibration structure to the pool. More... | |
void | AddCalibVignetting (const lfLensCalibVignetting *lcv) |
Add a new vignetting calibration structure to the pool. More... | |
void | AddCalibCrop (const lfLensCalibCrop *lcc) |
Add a new lens crop structure to the pool. More... | |
DEPRECATED void | AddCalibFov (const lfLensCalibFov *lcf) |
Add a new lens fov structure to the pool. More... | |
void | RemoveCalibrations () |
Remove all calibrations from the lens. | |
void | GuessParameters () |
This method fills some fields if they are missing but can be derived from other fields. More... | |
bool | Check () |
Check if a lens object is valid. More... | |
bool | InterpolateDistortion (float crop, float focal, lfLensCalibDistortion &res) const |
Interpolate lens geometry distortion data for given focal length and crop factor. More... | |
bool | InterpolateTCA (float crop, float focal, lfLensCalibTCA &res) const |
Interpolate lens TCA calibration data for given focal length. More... | |
bool | InterpolateVignetting (float crop, float focal, float aperture, float distance, lfLensCalibVignetting &res) const |
Interpolate lens vignetting model parameters for given focal length, aperture, and focus distance. More... | |
bool | InterpolateCrop (float crop, float focal, lfLensCalibCrop &res) const |
Interpolate lens crop data for given focal length. More... | |
int | AvailableModifications (float crop) const |
Get a flag with the available modifications for this lens considering the image crop factor. More... | |
const lfLensCalibrationSet *const * | GetCalibrationSets () const |
Get a list of all calibration sets. More... | |
const char *const * | GetMountNames () const |
Get a list of all mount names. More... | |
Static Public Member Functions | |
static const char * | GetDistortionModelDesc (lfDistortionModel model, const char **details, const lfParameter ***params) |
Get the human-readable distortion model name and the descriptions of the parameters required by this model. More... | |
static const char * | GetTCAModelDesc (lfTCAModel model, const char **details, const lfParameter ***params) |
Get the human-readable transversal chromatic aberrations model name and the descriptions of the parameters required by this model. More... | |
static const char * | GetVignettingModelDesc (lfVignettingModel model, const char **details, const lfParameter ***params) |
Get the human-readable vignetting model name and the descriptions of the parameters required by this model. More... | |
static const char * | GetCropDesc (lfCropMode mode, const char **details, const lfParameter ***params) |
Get the human-readable crop name and the descriptions of the parameters required by this model. More... | |
static const char * | GetLensTypeDesc (lfLensType type, const char **details) |
Get the human-readable lens type name and a short description of this lens type. More... | |
Public Attributes | |
lfMLstr | Maker |
lfMLstr | Model |
float | MinFocal |
float | MaxFocal |
float | MinAperture |
float | MaxAperture |
DEPRECATED char ** | Mounts |
lfLensType | Type |
float | CenterX |
float | CenterY |
DEPRECATED float | CropFactor |
DEPRECATED float | AspectRatio |
DEPRECATED lfLensCalibDistortion ** | CalibDistortion |
DEPRECATED lfLensCalibTCA ** | CalibTCA |
DEPRECATED lfLensCalibVignetting ** | CalibVignetting |
DEPRECATED lfLensCalibCrop ** | CalibCrop |
DEPRECATED lfLensCalibFov ** | CalibFov |
int | Score |
Friends | |
struct | lfDatabase |
Lens data. Unknown fields are set to NULL or 0.
To manually create a new lens object, fill the fields for which you have data, and invoke the lfLens::Check() or lf_lens_check() function, which will check if existing data is enough and will automatically fill some fields using information extracted from lens name.
lfLens::lfLens | ( | const lfLens & | other | ) |
Copy constructor.
void lfLens::AddCalibCrop | ( | const lfLensCalibCrop * | lcc | ) |
Add a new lens crop structure to the pool.
The objects is copied, thus you can reuse it as soon as this function returns.
lcc | The lens crop structure. |
void lfLens::AddCalibDistortion | ( | const lfLensCalibDistortion * | lcd | ) |
Add a new distortion calibration structure to the pool.
The objects are copied, thus you can reuse it as soon as this function returns.
lcd | The distortion calibration structure. |
DEPRECATED void lfLens::AddCalibFov | ( | const lfLensCalibFov * | lcf | ) |
Add a new lens fov structure to the pool.
The Field of View (FOV) database entry is deprecated since Lensfun version 0.3 and will be removed in future releases.
The objects is copied, thus you can reuse it as soon as this function returns.
lcf | The lens fov structure. |
void lfLens::AddCalibTCA | ( | const lfLensCalibTCA * | lctca | ) |
Add a new transversal chromatic aberration calibration structure to the pool.
The objects is copied, thus you can reuse it as soon as this function returns.
lctca | The transversal chromatic aberration calibration structure. |
void lfLens::AddCalibVignetting | ( | const lfLensCalibVignetting * | lcv | ) |
Add a new vignetting calibration structure to the pool.
The objects is copied, thus you can reuse it as soon as this function returns.
lcv | The vignetting calibration structure. |
void lfLens::AddMount | ( | const char * | val | ) |
Add a new mount type to this lens.
This is not a multi-language string, this it's just plain replaced.
val | The new value to add to the Mounts array. |
int lfLens::AvailableModifications | ( | float | crop | ) | const |
Get a flag with the available modifications for this lens considering the image crop factor.
Not all lens profiles have sufficient amount of calibration data to do all kinds of corrections for all possible image crop factors. For example, sometimes vignetting is only available for a crop of 1.5 but has not been measured for a full frame crop of 1.0.
For crop -1.0 a flag with enabled bits for all available calibrations in the lens profile is returned ignoring the crop factor.
crop | Crop factor of the image for which we want to apply the corrections or -1.0 to get a flag of all available calibrations. |
bool lfLens::Check | ( | ) |
Check if a lens object is valid.
const lfLensCalibrationSet* const* lfLens::GetCalibrationSets | ( | ) | const |
Get a list of all calibration sets.
|
static |
Get the human-readable crop name and the descriptions of the parameters required by this model.
mode | The crop mode. |
details | If not NULL, this string will be set to a more detailed (technical) description of the model. This string may contain newlines. |
params | If not NULL, this variable will be set to a pointer to an array of lfParameter structures, every structure describes a model parameter. The list is NULL-terminated. |
|
static |
Get the human-readable distortion model name and the descriptions of the parameters required by this model.
model | The model. |
details | If not NULL, this string will be set to a more detailed (technical) description of the model. This string may contain newlines. |
params | If not NULL, this variable will be set to a pointer to an array of lfParameter structures, every structure describes a model parameter. The list is NULL-terminated. |
|
static |
Get the human-readable lens type name and a short description of this lens type.
type | Lens type. |
details | If not NULL, this string will be set to a more detailed (technical) description of the lens type. This string may contain newlines. |
const char* const* lfLens::GetMountNames | ( | ) | const |
Get a list of all mount names.
|
static |
Get the human-readable transversal chromatic aberrations model name and the descriptions of the parameters required by this model.
model | The model. |
details | If not NULL, this string will be set to a more detailed (technical) description of the model. This string may contain newlines. |
params | If not NULL, this variable will be set to a pointer to an array of lfParameter structures, every structure describes a model parameter. The list is NULL-terminated. |
|
static |
Get the human-readable vignetting model name and the descriptions of the parameters required by this model.
model | The model. |
details | If not NULL, this string will be set to a more detailed (technical) description of the model. This string may contain newlines. |
params | If not NULL, this variable will be set to a pointer to an array of lfParameter structures, every structure describes a model parameter. The list is NULL-terminated. |
void lfLens::GuessParameters | ( | ) |
This method fills some fields if they are missing but can be derived from other fields.
This includes such non-obvious parameters like the range of focal lengths or the range of apertures, which can be derived from lens named (which is intelligently parsed) or from the list of calibrations.
bool lfLens::InterpolateCrop | ( | float | crop, |
float | focal, | ||
lfLensCalibCrop & | res | ||
) | const |
Interpolate lens crop data for given focal length.
crop | Crop factor of the image for which we need image parameters. |
focal | The focal length in mm at which we need image parameters. |
res | The resulting interpolated information data. |
bool lfLens::InterpolateDistortion | ( | float | crop, |
float | focal, | ||
lfLensCalibDistortion & | res | ||
) | const |
Interpolate lens geometry distortion data for given focal length and crop factor.
crop | Crop factor of the image for which we need geometry distortion parameters. |
focal | The focal length in mm at which we need geometry distortion parameters. |
res | The resulting interpolated model. |
bool lfLens::InterpolateTCA | ( | float | crop, |
float | focal, | ||
lfLensCalibTCA & | res | ||
) | const |
Interpolate lens TCA calibration data for given focal length.
crop | Crop factor of the image for which we need TCA parameters. |
focal | The focal length in mm at which we need TCA parameters. |
res | The resulting interpolated model. |
bool lfLens::InterpolateVignetting | ( | float | crop, |
float | focal, | ||
float | aperture, | ||
float | distance, | ||
lfLensCalibVignetting & | res | ||
) | const |
Interpolate lens vignetting model parameters for given focal length, aperture, and focus distance.
crop | Crop factor of the image for which we need vignetting parameters. |
focal | The focal length in mm for which we need vignetting parameters. |
aperture | The aperture (f-number) for which we need vignetting parameters. |
distance | The focus distance in meters (distance > 0) for which we need vignetting parameters. |
res | The resulting interpolated model. |
void lfLens::SetMaker | ( | const char * | val, |
const char * | lang = NULL |
||
) |
Add a string to camera maker.
If lang is NULL, this replaces the default value, otherwise a new language value is appended.
val | The new value for the Maker field. |
lang | The language this field is in. |
void lfLens::SetModel | ( | const char * | val, |
const char * | lang = NULL |
||
) |
Add a string to camera model.
If lang is NULL, this replaces the default value, otherwise a new language value is appended.
val | The new value for the Model field. |
lang | The language this field is in. |
DEPRECATED float lfLens::AspectRatio |
Aspect ratio of the images used for calibration measurements.
DEPRECATED lfLensCalibCrop** lfLens::CalibCrop |
Crop data, NULL-terminated (unsorted)
DEPRECATED lfLensCalibDistortion** lfLens::CalibDistortion |
Lens distortion calibration data, NULL-terminated (unsorted)
DEPRECATED lfLensCalibFov** lfLens::CalibFov |
Field of view calibration data, NULL-terminated (unsorted)
DEPRECATED lfLensCalibTCA** lfLens::CalibTCA |
Lens TCA calibration data, NULL-terminated (unsorted)
DEPRECATED lfLensCalibVignetting** lfLens::CalibVignetting |
Lens vignetting calibration data, NULL-terminated (unsorted)
float lfLens::CenterX |
The horizontal shift of all lens distortions. Note that distortion and TCA uses same geometrical lens center. It is given as a relative value to avoide dependency on the image and/or sensor sizes. The calibrated delta X and Y values are numbers in the -0.5 .. +0.5 range. For 1 we take the maximal image dimension (width or height) - this is related to the fact that the lens has a circular field of projection disregarding sensor size.
float lfLens::CenterY |
The vertical shift of all lens distortions. (0,0) for geometric center
DEPRECATED float lfLens::CropFactor |
Crop factor at which calibration measurements were taken. Must be defined.
float lfLens::MaxAperture |
Biggest f-number possible (ex: 22).
float lfLens::MaxFocal |
Maximum focal length, mm (ex: 105). Can be equal to MinFocal.
float lfLens::MinAperture |
Smallest f-number possible (ex: 3.5).
float lfLens::MinFocal |
Minimum focal length, mm (ex: 35).
lfMLstr lfLens::Model |
Lens model (ex: "Zoom-Rolleinar")
DEPRECATED char** lfLens::Mounts |
int lfLens::Score |
Lens matching score, used while searching: not actually a lens parameter
lfLensType lfLens::Type |
Lens type