lfLens Struct Reference
[Structures and functions for lenses]

Lens data. More...

#include <lensfun.h>

List of all members.

Public Member Functions

 lfLens ()
 Create a new lens object, initializing all fields to default values.
 lfLens (const lfLens &other)
 Copy constructor.
 ~lfLens ()
 Destroy this and all associated objects.
lfLensoperator= (const lfLens &other)
 Assignment operator.
void SetMaker (const char *val, const char *lang=NULL)
 Add a string to camera maker.
void SetModel (const char *val, const char *lang=NULL)
 Add a string to camera model.
void AddMount (const char *val)
 Add a new mount type to this lens.
void AddCalibDistortion (const lfLensCalibDistortion *dc)
 Add a new distortion calibration structure to the pool.
bool RemoveCalibDistortion (int idx)
 Remove a calibration entry from the distortion calibration data.
void AddCalibTCA (const lfLensCalibTCA *tcac)
 Add a new transversal chromatic aberration calibration structure to the pool.
bool RemoveCalibTCA (int idx)
 Remove a calibration entry from the TCA calibration data.
void AddCalibVignetting (const lfLensCalibVignetting *vc)
 Add a new vignetting calibration structure to the pool.
bool RemoveCalibVignetting (int idx)
 Remove a calibration entry from the vignetting calibration data.
void GuessParameters ()
 This method fills some fields if they are missing but can be derived from other fields.
bool Check ()
 Check if a lens object is valid.
bool InterpolateDistortion (float focal, lfLensCalibDistortion &res) const
 Interpolate lens geometry distortion data for given focal length.
bool InterpolateTCA (float focal, lfLensCalibTCA &res) const
 Interpolate lens TCA calibration data for given focal length.
bool InterpolateVignetting (float focal, float aperture, float distance, lfLensCalibVignetting &res) const
 Interpolate lens vignetting model parameters for given focal distance, aperture and focus distance.

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.
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.
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.
static const char * GetLensTypeDesc (lfLensType type, const char **details)
 Get the human-readable lens type name and a short description of this lens type.

Public Attributes

lfMLstr Maker
 Lens maker (ex: "Rollei").
lfMLstr Model
 Lens model (ex: "Zoom-Rolleinar").
float MinFocal
 Minimum focal distance, mm (ex: 35).
float MaxFocal
 Maximum focal distance, mm (ex: 105).
float MinAperture
 Aperture at minimum focal distance (ex: 3.5).
float MaxAperture
 Aperture at maximum focal distance (ex: 4.3).
char ** Mounts
 Available mounts (NULL-terminated list) (ex: { "QBM", NULL }).
float CenterX
 The horizontal shift of all lens distortions.
float CenterY
 The vertical shift of all lens distortions.
float RedCCI
 Lens colour contribution index (ISO/CCI, ISO 6728:1983).
float GreenCCI
 Green component of lens CCI.
float BlueCCI
 Blue component of lens CCI.
float CropFactor
 Crop factor at which calibration measurements were taken.
lfLensType Type
 Lens type.
lfLensCalibDistortion ** CalibDistortion
 Lens distortion calibration data, NULL-terminated (unsorted).
lfLensCalibTCA ** CalibTCA
 Lens TCA calibration data, NULL-terminated (unsorted).
lfLensCalibVignetting ** CalibVignetting
 Lens vignetting calibration data, NULL-terminated (unsorted).
int Score
 Lens matching score, used while searching: not actually a lens parameter.

Detailed Description

Lens data.

Unknown fields are set to NULL or 0.

To create a new lens object, use the lfLens::Create() or lf_lens_new() functions. After that 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 fill some fields using information extracted from lens name.

Examples:

example.c, tfun.cpp, and tmod.cpp.


Member Function Documentation

void lfLens::AddCalibDistortion ( const lfLensCalibDistortion dc  ) 

Add a new distortion calibration structure to the pool.

The objects is copied, thus you can reuse it as soon as this function returns.

Parameters:
dc The distortion calibration structure.
void lfLens::AddCalibTCA ( const lfLensCalibTCA tcac  ) 

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.

Parameters:
tcac The transversal chromatic aberration calibration structure.
void lfLens::AddCalibVignetting ( const lfLensCalibVignetting vc  ) 

Add a new vignetting calibration structure to the pool.

The objects is copied, thus you can reuse it as soon as this function returns.

Parameters:
vc 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.

Parameters:
val The new value to add to the Mounts array.
bool lfLens::Check (  ) 

Check if a lens object is valid.

Returns:
true if the required fields are ok.
static const char* lfLens::GetDistortionModelDesc ( lfDistortionModel  model,
const char **  details,
const lfParameter ***  params 
) [static]

Get the human-readable distortion model name and the descriptions of the parameters required by this model.

Parameters:
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.
Returns:
A short name of the distortion model or NULL if model is unknown.
static const char* lfLens::GetLensTypeDesc ( lfLensType  type,
const char **  details 
) [static]

Get the human-readable lens type name and a short description of this lens type.

Parameters:
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.
Returns:
A short name of the lens type or NULL if model is unknown.
static const char* lfLens::GetTCAModelDesc ( lfTCAModel  model,
const char **  details,
const lfParameter ***  params 
) [static]

Get the human-readable transversal chromatic aberrations model name and the descriptions of the parameters required by this model.

Parameters:
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.
Returns:
A short name of the TCA model or NULL if model is unknown.
static const char* lfLens::GetVignettingModelDesc ( lfVignettingModel  model,
const char **  details,
const lfParameter ***  params 
) [static]

Get the human-readable vignetting model name and the descriptions of the parameters required by this model.

Parameters:
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.
Returns:
A short name of the vignetting model or NULL if model is unknown.
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 distances or the range of apertures, which can be derived from lens named (which is intelligently parsed) or from the list of calibrations.

bool lfLens::InterpolateDistortion ( float  focal,
lfLensCalibDistortion res 
) const

Interpolate lens geometry distortion data for given focal length.

Parameters:
focal The focal distance at which we need geometry distortion parameters.
res The resulting interpolated model.
bool lfLens::InterpolateTCA ( float  focal,
lfLensCalibTCA res 
) const

Interpolate lens TCA calibration data for given focal length.

Parameters:
focal The focal distance at which we need TCA parameters.
res The resulting interpolated model.
bool lfLens::InterpolateVignetting ( float  focal,
float  aperture,
float  distance,
lfLensCalibVignetting res 
) const

Interpolate lens vignetting model parameters for given focal distance, aperture and focus distance.

Parameters:
focal The focal distance for which we need vignetting parameters.
aperture The aperture value for which we need vignetting parameters.
distance The focus distance for which we need vignetting parameters.
res The resulting interpolated model.
bool lfLens::RemoveCalibDistortion ( int  idx  ) 

Remove a calibration entry from the distortion calibration data.

Parameters:
idx The calibration data index (zero-based).
bool lfLens::RemoveCalibTCA ( int  idx  ) 

Remove a calibration entry from the TCA calibration data.

Parameters:
idx The calibration data index (zero-based).
bool lfLens::RemoveCalibVignetting ( int  idx  ) 

Remove a calibration entry from the vignetting calibration data.

Parameters:
idx The calibration data index (zero-based).
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.

Parameters:
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.

Parameters:
val The new value for the Model field.
lang The language this field is in.

Member Data Documentation

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.

Examples:
tfun.cpp.

The vertical shift of all lens distortions.

(0,0) for geometric center

Examples:
tfun.cpp.

Crop factor at which calibration measurements were taken.

Examples:
tfun.cpp, and tmod.cpp.

Aperture at maximum focal distance (ex: 4.3).

Can be equal to MinAperture.

Examples:
tfun.cpp.

Maximum focal distance, mm (ex: 105).

Can be equal to MinFocal.

Examples:
tfun.cpp.

Aperture at minimum focal distance (ex: 3.5).

Examples:
tfun.cpp, and tmod.cpp.

Minimum focal distance, mm (ex: 35).

Examples:
tfun.cpp, and tmod.cpp.

Lens colour contribution index (ISO/CCI, ISO 6728:1983).

Default 0/5/4

Examples:
tfun.cpp.

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

Generated on Mon Oct 26 08:13:23 2009 for lensfun by  doxygen 1.6.1