Classes | |
struct | lfLensCalibDistortion |
Lens distortion calibration data. More... | |
struct | lfLensCalibTCA |
Laterlal chromatic aberrations calibration data. More... | |
struct | lfLensCalibVignetting |
Lens vignetting calibration data. More... | |
struct | lfParameter |
This structure describes a single parameter for some lens model. More... | |
struct | lfLens |
Lens data. More... | |
Enumerations | |
enum | lfDistortionModel { LF_DIST_MODEL_NONE, LF_DIST_MODEL_POLY3, LF_DIST_MODEL_POLY5, LF_DIST_MODEL_FOV1, LF_DIST_MODEL_PTLENS } |
The lensdb library implements several lens distortion models. More... | |
enum | lfTCAModel { LF_TCA_MODEL_NONE, LF_TCA_MODEL_LINEAR } |
The lensdb library supports several models for lens lateral chromatic aberrations (also called transversal chromatic aberrations, TCA). More... | |
enum | lfVignettingModel { LF_VIGNETTING_MODEL_NONE, LF_VIGNETTING_MODEL_PA } |
The lensdb library supports several models for lens vignetting correction. More... | |
enum | lfLensType { LF_UNKNOWN, LF_RECTILINEAR, LF_FISHEYE, LF_PANORAMIC, LF_EQUIRECTANGULAR } |
Lens type. More... | |
Functions | |
lfLens * | lf_lens_new () |
Create a new lens object. | |
void | lf_lens_destroy (lfLens *lens) |
Destroy a lfLens object. | |
void | lf_lens_copy (lfLens *dest, const lfLens *source) |
Copy the data from one lfLens structure into another. | |
cbool | lf_lens_check (lfLens *lens) |
void | lf_lens_guess_parameters (lfLens *lens) |
const char * | lf_get_distortion_model_desc (enum lfDistortionModel model, const char **details, const lfParameter ***params) |
const char * | lf_get_tca_model_desc (enum lfTCAModel model, const char **details, const lfParameter ***params) |
const char * | lf_get_vignetting_model_desc (enum lfVignettingModel model, const char **details, const lfParameter ***params) |
const char * | lf_get_lens_type_desc (enum lfLensType type, const char **details) |
cbool | lf_lens_interpolate_distortion (const lfLens *lens, float focal, lfLensCalibDistortion *res) |
cbool | lf_lens_interpolate_tca (const lfLens *lens, float focal, lfLensCalibTCA *res) |
cbool | lf_lens_interpolate_vignetting (const lfLens *lens, float focal, float aperture, float distance, lfLensCalibVignetting *res) |
void | lf_lens_add_calib_distortion (lfLens *lens, const lfLensCalibDistortion *dc) |
cbool | lf_lens_remove_calib_distortion (lfLens *lens, int idx) |
void | lf_lens_add_calib_tca (lfLens *lens, const lfLensCalibTCA *tcac) |
cbool | lf_lens_remove_calib_tca (lfLens *lens, int idx) |
void | lf_lens_add_calib_vignetting (lfLens *lens, const lfLensCalibVignetting *vc) |
cbool | lf_lens_remove_calib_vignetting (lfLens *lens, int idx) |
enum lfDistortionModel |
The lensdb library implements several lens distortion models.
This enum lists them. Distortion usually heavily depends on the focal distance, but does not depend on the aperture.
For a popular explanation of lens distortion see http://www.vanwalree.com/optics/distortion.html
LF_DIST_MODEL_NONE | Distortion parameters are unknown. |
LF_DIST_MODEL_POLY3 | 3rd order polynomial model: Ru = Rd * (1 + k1 * Rd^2) Ref: http://www.imatest.com/docs/distortion.html |
LF_DIST_MODEL_POLY5 | 5th order polynomial model: Ru = Rd * (1 + k1 * Rd^2 + k2 * Rd^4) |
LF_DIST_MODEL_FOV1 | Field-of-view lens model: Ru = tg (Rd * omega) / (2 * tg (omega/2)) Ref: ftp://ftp-sop.inria.fr/chir/publis/devernay-faugeras:01.pdf. |
LF_DIST_MODEL_PTLENS | PTLens rectilinear: Ru = Rd * (a * Rd^3 + b * Rd^2 + c * Rd + 1). |
enum lfLensType |
Lens type.
LF_UNKNOWN | Unknown lens type. |
LF_RECTILINEAR | A rectilinear lens - 99% of all lenses are of this type. |
LF_FISHEYE | Fisheye lens Ref: http://wiki.panotools.org/Fisheye_Projection. |
LF_PANORAMIC | Panoramic (cylindrical). |
LF_EQUIRECTANGULAR | Equirectangular (not that there are such lenses, but useful to convert images TO this type, especially fish-eye images. |
enum lfTCAModel |
The lensdb library supports several models for lens lateral chromatic aberrations (also called transversal chromatic aberrations, TCA).
TCAs depend on focal distance, but does not depend of the aperture.
For a popular explanation of chromatic aberrations see http://www.vanwalree.com/optics/chromatic.html
LF_TCA_MODEL_NONE | No TCA correction data is known. |
LF_TCA_MODEL_LINEAR | Linear lateral chromatic aberrations model: Rd(R) = Ru(R) * k1, Rd(B) = Ru(B) * k2 Ref: http://cipa.icomos.org/fileadmin/papers/Torino2005/403.pdf. |
enum lfVignettingModel |
The lensdb library supports several models for lens vignetting correction.
We focus on optical and natural vignetting since they can be generalized for all lenses of a certain type; mechanical vignetting is out of the scope of this library.
Vignetting is dependent on both focal distance and aperture.
For a popular explanation of vignetting see http://www.vanwalree.com/optics/vignetting.html
LF_VIGNETTING_MODEL_NONE | No vignetting correction data is known. |
LF_VIGNETTING_MODEL_PA | Pablo D'Angelo vignetting model (which is a more general variant of the cos^4 law): c = 1 + k1 * R^2 + k2 * R^4 + k3 * R^6 Ref: http://hugin.sourceforge.net/tech/. |
const char* lf_get_distortion_model_desc | ( | enum lfDistortionModel | model, | |
const char ** | details, | |||
const lfParameter *** | params | |||
) |
const char* lf_get_lens_type_desc | ( | enum lfLensType | type, | |
const char ** | details | |||
) |
const char* lf_get_tca_model_desc | ( | enum lfTCAModel | model, | |
const char ** | details, | |||
const lfParameter *** | params | |||
) |
const char* lf_get_vignetting_model_desc | ( | enum lfVignettingModel | model, | |
const char ** | details, | |||
const lfParameter *** | params | |||
) |
void lf_lens_add_calib_distortion | ( | lfLens * | lens, | |
const lfLensCalibDistortion * | dc | |||
) |
void lf_lens_add_calib_tca | ( | lfLens * | lens, | |
const lfLensCalibTCA * | tcac | |||
) |
void lf_lens_add_calib_vignetting | ( | lfLens * | lens, | |
const lfLensCalibVignetting * | vc | |||
) |
cbool lf_lens_check | ( | lfLens * | lens | ) |
Copy the data from one lfLens structure into another.
dest | The destination object | |
source | The source object |
void lf_lens_destroy | ( | lfLens * | lens | ) |
Destroy a lfLens object.
This is equivalent to C++ "delete lens".
lens | The lens object to destroy. |
void lf_lens_guess_parameters | ( | lfLens * | lens | ) |
cbool lf_lens_interpolate_distortion | ( | const lfLens * | lens, | |
float | focal, | |||
lfLensCalibDistortion * | res | |||
) |
cbool lf_lens_interpolate_tca | ( | const lfLens * | lens, | |
float | focal, | |||
lfLensCalibTCA * | res | |||
) |
cbool lf_lens_interpolate_vignetting | ( | const lfLens * | lens, | |
float | focal, | |||
float | aperture, | |||
float | distance, | |||
lfLensCalibVignetting * | res | |||
) |
lfLens* lf_lens_new | ( | ) |
cbool lf_lens_remove_calib_distortion | ( | lfLens * | lens, | |
int | idx | |||
) |
cbool lf_lens_remove_calib_tca | ( | lfLens * | lens, | |
int | idx | |||
) |
cbool lf_lens_remove_calib_vignetting | ( | lfLens * | lens, | |
int | idx | |||
) |