Go to the documentation of this file.
32 # define C_TYPEDEF(t,c)
34 # define C_TYPEDEF(t,c) typedef t c c;
50 #define LF_VERSION_MAJOR 0
52 #define LF_VERSION_MINOR 3
54 #define LF_VERSION_MICRO 2
56 #define LF_VERSION_BUGFIX 0
58 #define LF_VERSION ((LF_VERSION_MAJOR << 24) | (LF_VERSION_MINOR << 16) | (LF_VERSION_MICRO << 8) | LF_VERSION_BUGFIX)
62 #define LF_MIN_DATABASE_VERSION 0
63 #define LF_MAX_DATABASE_VERSION 2
66 #if defined CONF_LENSFUN_STATIC
70 # ifdef CONF_SYMBOL_VISIBILITY
71 # if defined PLATFORM_WINDOWS
72 # define LF_EXPORT __declspec(dllexport)
73 # elif defined CONF_COMPILER_GCC || __clang__
74 # define LF_EXPORT __attribute__((visibility("default")))
76 # error "I don't know how to change symbol visibility for your compiler"
79 # if defined PLATFORM_WINDOWS || defined _MSC_VER
80 # define LF_EXPORT __declspec(dllimport)
87 #ifndef CONF_LENSFUN_INTERNAL
90 # define DEPRECATED __attribute__((deprecated))
91 # elif defined(_MSC_VER)
92 # define DEPRECATED __declspec(deprecated)
94 # pragma message("WARNING: You need to implement DEPRECATED for this compiler")
247 void SetName (
const char *val,
const char *lang = NULL);
254 void AddCompat (
const char *val);
368 void SetMaker (
const char *val,
const char *lang = NULL);
380 void SetModel (
const char *val,
const char *lang = NULL);
392 void SetVariant (
const char *val,
const char *lang = NULL);
399 void SetMount (
const char *val);
934 void SetMaker (
const char *val,
const char *lang = NULL);
946 void SetModel (
const char *val,
const char *lang = NULL);
955 void AddMount (
const char *val);
972 bool RemoveCalibDistortion (
int idx);
990 bool RemoveCalibTCA (
int idx);
1007 bool RemoveCalibVignetting (
int idx);
1024 bool RemoveCalibCrop (
int idx);
1058 void GuessParameters ();
1082 static const char *GetDistortionModelDesc (
1099 static const char *GetTCAModelDesc (
1117 static const char *GetVignettingModelDesc (
1135 static const char *GetCropDesc (
1149 static const char *GetLensTypeDesc (
lfLensType type,
const char **details);
1182 bool InterpolateVignetting (
1419 static long int ReadTimestamp (
const char *dirname);
1435 DEPRECATED bool LoadDirectory (
const char *dirname);
1460 lfError Load (
const char *pathname);
1476 lfError Load (
const char *errcontext,
const char *data,
size_t data_size);
1485 lfError Save (
const char *filename)
const;
1500 lfError Save (
const char *filename,
1503 const lfLens *
const *lenses)
const;
1517 static char *Save (
const lfMount *
const *mounts,
1519 const lfLens *
const *lenses);
1545 const lfCamera **FindCameras (
const char *maker,
const char *model)
const;
1567 const lfCamera **FindCamerasExt (
const char *maker,
const char *model,
1568 int sflags = 0)
const;
1577 const lfCamera *
const *GetCameras ()
const;
1616 const lfLens **FindLenses (
const lfCamera *camera,
const char *maker,
1617 const char *model,
int sflags = 0)
const;
1636 const lfLens **FindLenses (
const lfLens *lens,
int sflags = 0)
const;
1645 const lfLens *
const *GetLenses ()
const;
1654 const lfMount *FindMount (
const char *mount)
const;
1663 const char *MountName (
const char *mount)
const;
1672 const lfMount *
const *GetMounts ()
const;
1679 void AddMount (
lfMount *mount);
1693 void AddLens (
lfLens *lens);
1753 const char *data,
size_t data_size);
1762 const lfLens *
const *lenses);
1767 const lfLens *
const *lenses);
1771 const lfDatabase *db,
const char *maker,
const char *model);
1775 const lfDatabase *db,
const char *maker,
const char *model,
int sflags);
1783 const char *lens,
int sflags);
1879 #define LF_CR_1(a) (LF_CR_ ## a)
1881 #define LF_CR_2(a,b) ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4))
1883 #define LF_CR_3(a,b,c) ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \
1884 ((LF_CR_ ## c) << 8))
1886 #define LF_CR_4(a,b,c,d) ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \
1887 ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12))
1889 #define LF_CR_5(a,b,c,d,e) ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \
1890 ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12) | \
1891 ((LF_CR_ ## e) << 16))
1893 #define LF_CR_6(a,b,c,d,e,f) ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \
1894 ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12) | \
1895 ((LF_CR_ ## e) << 16) | ((LF_CR_ ## f) << 20))
1897 #define LF_CR_7(a,b,c,d,e,f,g) ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \
1898 ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12) | \
1899 ((LF_CR_ ## e) << 16) | ((LF_CR_ ## f) << 20) | \
1900 ((LF_CR_ ## g) << 24))
1902 #define LF_CR_8(a,b,c,d,e,f,g,h) ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \
1903 ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12) | \
1904 ((LF_CR_ ## e) << 16) | ((LF_CR_ ## f) << 20) | \
1905 ((LF_CR_ ## g) << 24) | ((LF_CR_ ## h) << 28))
1949 void *pixels,
int comp_role,
int count);
1969 struct lfCallbackData
1975 virtual ~lfCallbackData() {};
1979 typedef struct {
float angle, dist; } lfPoint;
2173 float distance,
float scale,
lfLensType targeom,
int flags,
bool reverse);
2225 bool EnablePerspectiveCorrection (
float *x,
float *y,
int count,
float d);
2252 void *data,
size_t data_size);
2272 void *data,
size_t data_size);
2291 void *data,
size_t data_size);
2307 bool AddSubpixelCallbackTCA (
lfLensCalibTCA &model,
bool reverse =
false);
2324 bool reverse =
false);
2373 bool AddCoordCallbackScale (
float scale,
bool reverse =
false);
2388 float GetAutoScale (
bool reverse);
2419 bool ApplyColorModification (
void *pixels,
float x,
float y,
int width,
int height,
2420 int comp_role,
int row_stride)
const;
2452 bool ApplyGeometryDistortion (
float xu,
float yu,
int width,
int height,
2486 bool ApplySubpixelDistortion (
float xu,
float yu,
int width,
int height,
2519 bool ApplySubpixelGeometryDistortion (
float xu,
float yu,
int width,
int height,
2553 float GetRealFocalLength (
const lfLens *lens,
float focal);
2555 void AddCallback (
void *arr, lfCallbackData *d,
2556 int priority,
void *data,
size_t data_size);
2571 double AutoscaleResidualDistance (
float *coord)
const;
2586 float GetTransformedDistance (lfPoint point)
const;
2588 static void ModifyCoord_UnTCA_Linear (
void *data,
float *iocoord,
int count);
2589 static void ModifyCoord_TCA_Linear (
void *data,
float *iocoord,
int count);
2590 static void ModifyCoord_UnTCA_Poly3 (
void *data,
float *iocoord,
int count);
2591 static void ModifyCoord_TCA_Poly3 (
void *data,
float *iocoord,
int count);
2592 static void ModifyCoord_TCA_ACM (
void *data,
float *iocoord,
int count);
2594 static void ModifyCoord_UnDist_Poly3 (
void *data,
float *iocoord,
int count);
2595 static void ModifyCoord_Dist_Poly3 (
void *data,
float *iocoord,
int count);
2596 #ifdef VECTORIZATION_SSE
2597 static void ModifyCoord_Dist_Poly3_SSE (
void *data,
float *iocoord,
int count);
2599 static void ModifyCoord_UnDist_Poly5 (
void *data,
float *iocoord,
int count);
2600 static void ModifyCoord_Dist_Poly5 (
void *data,
float *iocoord,
int count);
2601 static void ModifyCoord_UnDist_PTLens (
void *data,
float *iocoord,
int count);
2602 static void ModifyCoord_Dist_PTLens (
void *data,
float *iocoord,
int count);
2603 #ifdef VECTORIZATION_SSE
2604 static void ModifyCoord_UnDist_PTLens_SSE (
void *data,
float *iocoord,
int count);
2605 static void ModifyCoord_Dist_PTLens_SSE (
void *data,
float *iocoord,
int count);
2607 static void ModifyCoord_Dist_ACM (
void *data,
float *iocoord,
int count);
2608 static void ModifyCoord_Geom_FishEye_Rect (
void *data,
float *iocoord,
int count);
2609 static void ModifyCoord_Geom_Panoramic_Rect (
void *data,
float *iocoord,
int count);
2610 static void ModifyCoord_Geom_ERect_Rect (
void *data,
float *iocoord,
int count);
2611 static void ModifyCoord_Geom_Rect_FishEye (
void *data,
float *iocoord,
int count);
2612 static void ModifyCoord_Geom_Panoramic_FishEye (
void *data,
float *iocoord,
int count);
2613 static void ModifyCoord_Geom_ERect_FishEye (
void *data,
float *iocoord,
int count);
2614 static void ModifyCoord_Geom_Rect_Panoramic (
void *data,
float *iocoord,
int count);
2615 static void ModifyCoord_Geom_FishEye_Panoramic (
void *data,
float *iocoord,
int count);
2616 static void ModifyCoord_Geom_ERect_Panoramic (
void *data,
float *iocoord,
int count);
2617 static void ModifyCoord_Geom_Rect_ERect (
void *data,
float *iocoord,
int count);
2618 static void ModifyCoord_Geom_FishEye_ERect (
void *data,
float *iocoord,
int count);
2619 static void ModifyCoord_Geom_Panoramic_ERect (
void *data,
float *iocoord,
int count);
2620 static void ModifyCoord_Geom_Orthographic_ERect (
void *data,
float *iocoord,
int count);
2621 static void ModifyCoord_Geom_ERect_Orthographic (
void *data,
float *iocoord,
int count);
2622 static void ModifyCoord_Geom_Stereographic_ERect (
void *data,
float *iocoord,
int count);
2623 static void ModifyCoord_Geom_ERect_Stereographic (
void *data,
float *iocoord,
int count);
2624 static void ModifyCoord_Geom_Equisolid_ERect (
void *data,
float *iocoord,
int count);
2625 static void ModifyCoord_Geom_ERect_Equisolid (
void *data,
float *iocoord,
int count);
2626 static void ModifyCoord_Geom_Thoby_ERect (
void *data,
float *iocoord,
int count);
2627 static void ModifyCoord_Geom_ERect_Thoby (
void *data,
float *iocoord,
int count);
2628 static void ModifyCoord_Perspective_Correction (
void *data,
float *iocoord,
int count);
2629 #ifdef VECTORIZATION_SSE
2630 static void ModifyColor_DeVignetting_PA_SSE (
2631 void *data,
float _x,
float _y,
lf_f32 *pixels,
int comp_role,
int count);
2633 #ifdef VECTORIZATION_SSE2
2634 static void ModifyColor_DeVignetting_PA_SSE2 (
2635 void *data,
float _x,
float _y,
lf_u16 *pixels,
int comp_role,
int count);
2638 template<
typename T>
static void ModifyColor_Vignetting_PA (
2639 void *data,
float x,
float y, T *rgb,
int comp_role,
int count);
2640 template<
typename T>
static void ModifyColor_DeVignetting_PA (
2641 void *data,
float x,
float y, T *rgb,
int comp_role,
int count);
2643 static void ModifyCoord_Scale (
void *data,
float *iocoord,
int count);
2645 double Width, Height;
2649 double CenterX, CenterY;
2651 double NormScale, NormUnScale;
2655 double NormalizedInMillimeters;
2658 double AspectRatioCorrection;
2661 void *SubpixelCallbacks;
2663 void *ColorCallbacks;
2665 void *CoordCallbacks;
2675 double FocalLengthNormalized;
2688 const lfLens *lens,
float crop,
int width,
int height);
2696 float focal,
float aperture,
float distance,
float scale,
2701 lfModifier *modifier,
float *x,
float *y,
int count,
float d);
2706 void *data,
size_t data_size);
2711 void *data,
size_t data_size);
2716 void *data,
size_t data_size);
2745 lfModifier *modifier,
float xu,
float yu,
int width,
int height,
float *res);
2749 lfModifier *modifier,
void *pixels,
float x,
float y,
int width,
int height,
2750 int comp_role,
int row_stride);
2754 lfModifier *modifier,
float xu,
float yu,
int width,
int height,
float *res);
2758 lfModifier *modifier,
float xu,
float yu,
int width,
int height,
float *res);
lfModifier * lf_modifier_new(const lfLens *lens, float crop, int width, int height)
Lens distortion calibration data.
Definition: lensfun.h:526
Definition: lensfun.h:1842
Adobe Camera Model. The coordinate system is different here. Everything is measured in units of the f...
Definition: lensfun.h:515
Camera data. Unknown fields are set to NULL.
Definition: lensfun.h:322
const lfCamera ** lf_db_find_cameras(const lfDatabase *db, const char *maker, const char *model)
cbool lf_lens_interpolate_vignetting(const lfLens *lens, float focal, float aperture, float distance, lfLensCalibVignetting *res)
unsigned char lf_u8
Definition: lensfun.h:128
#define LF_EXPORT
This macro expands to an appropiate symbol visibility declaration.
Definition: lensfun.h:68
const char *const lf_db_system_location
Definition: lensfun.h:1838
void lf_mount_destroy(lfMount *mount)
Destroy a lfMount object.
lfMLstr Maker
Camera maker (ex: "Rollei") – same as in EXIF.
Definition: lensfun.h:325
static const char *const SystemLocation
System lens database directory (something like "/usr/share/lensfun")
Definition: lensfun.h:1382
lfVignettingModel
The Lensfun library supports several models for lens vignetting correction.
Definition: lensfun.h:668
Definition: lensfun.h:120
Rectilinear lens.
Definition: lensfun.h:810
cbool lf_modifier_enable_perspective_correction(lfModifier *modifier, float *x, float *y, int count, float d)
lfMLstr Model
Model name (ex: "Rolleiflex SL35") – same as in EXIF.
Definition: lensfun.h:327
char ** Compat
Definition: lensfun.h:214
This flag selects a looser search algorithm resulting in more results (still sorted by score).
Definition: lensfun.h:1339
float Aperture
Aperture (f-number) at which this calibration data was taken.
Definition: lensfun.h:711
Definition: lensfun.h:1840
Definition: lensfun.h:1821
float CenterY
Definition: lensfun.h:883
cbool lf_modifier_apply_subpixel_distortion(lfModifier *modifier, float xu, float yu, int width, int height, float *res)
float Max
Maximal value that has sense.
Definition: lensfun.h:792
lfMLstr Maker
Definition: lensfun.h:859
float lf_modifier_get_auto_scale(lfModifier *modifier, cbool reverse)
cbool lf_modifier_add_coord_callback_distortion(lfModifier *modifier, lfLensCalibDistortion *model, cbool reverse)
DEPRECATED cbool lf_db_load_directory(lfDatabase *db, const char *dirname)
lfMLstr lf_mlstr_dup(const lfMLstr str)
Create a complete copy of a multi-language string.
Definition: lensfun.h:1869
unsigned int lf_u32
Definition: lensfun.h:132
lfError
Definition: lensfun.h:115
Definition: lensfun.h:1834
void lf_modifier_add_subpixel_callback(lfModifier *modifier, lfSubpixelCoordFunc callback, int priority, void *data, size_t data_size)
Lens vignetting calibration data.
Definition: lensfun.h:704
lfMLstr Variant
Camera variant. Some cameras use same EXIF id for different models.
Definition: lensfun.h:329
float CropFactor
Camera crop factor (ex: 1.0). Must be defined.
Definition: lensfun.h:333
Definition: lensfun.h:1865
float Focal
Definition: lensfun.h:767
lfLensType Type
Definition: lensfun.h:889
#define DEPRECATED
For marking deprecated functions, see http://stackoverflow.com/a/21265197.
Definition: lensfun.h:95
no crop at all
Definition: lensfun.h:726
5th order polynomial model.
Definition: lensfun.h:490
This structure describes a single parameter for some lens model.
Definition: lensfun.h:785
const lfLens *const * lf_db_get_lenses(const lfDatabase *db)
cbool lf_modifier_add_coord_callback_geometry(lfModifier *modifier, lfLensType from, lfLensType to)
cbool lf_modifier_apply_subpixel_geometry_distortion(lfModifier *modifier, float xu, float yu, int width, int height, float *res)
lfLens * lf_lens_new()
Create a new lens object.
void lf_lens_destroy(lfLens *lens)
Destroy a lfLens object.
const lfCamera *const * lf_db_get_cameras(const lfDatabase *db)
float lf_f32
Definition: lensfun.h:134
float RealFocal
Real focal length in mm for this nominal focal length.
Definition: lensfun.h:550
void lf_lens_add_calib_vignetting(lfLens *lens, const lfLensCalibVignetting *vc)
Laterlal chromatic aberrations calibration data.
Definition: lensfun.h:640
Adobe camera model for TCA. The coordinate system is different here. Everything is measured in units ...
Definition: lensfun.h:628
lfTCAModel
The Lensfun library supports several models for lens lateral chromatic aberrations (also called trans...
Definition: lensfun.h:573
Definition: lensfun.h:1873
Definition: lensfun.h:118
static const char *const UserUpdatesLocation
Home lens database directory for automatic updates (something like "~/.local/share/lensfun/updates")
Definition: lensfun.h:1380
const char *const lf_db_user_location
Linear lateral chromatic aberrations model.
Definition: lensfun.h:588
lfLensType
Lens type. See Change of projection for further information.
Definition: lensfun.h:802
Definition: lensfun.h:1816
Stereographic fisheye.
Definition: lensfun.h:834
cbool lf_lens_remove_calib_vignetting(lfLens *lens, int idx)
lfDistortionModel
The Lensfun library implements several lens distortion models. This enum lists them.
Definition: lensfun.h:470
float MinFocal
Definition: lensfun.h:863
void lf_modifier_destroy(lfModifier *modifier)
char * Mount
Camera mount type (ex: "QBM")
Definition: lensfun.h:331
use a circular crop, e.g. for circular fisheye images
Definition: lensfun.h:730
void lf_lens_guess_parameters(lfLens *lens)
const lfLens ** lf_db_find_lenses_hd(const lfDatabase *db, const lfCamera *camera, const char *maker, const char *lens, int sflags)
cbool lf_modifier_apply_color_modification(lfModifier *modifier, void *pixels, float x, float y, int width, int height, int comp_role, int row_stride)
float CropFactor
Definition: lensfun.h:885
lfMLstr Name
Camera mount name.
Definition: lensfun.h:212
char ** Mounts
Definition: lensfun.h:871
Definition: lensfun.h:1836
void(* lfModifyColorFunc)(void *data, float x, float y, void *pixels, int comp_role, int count)
A callback function which modifies the colors of a strip of pixels.
Definition: lensfun.h:1948
const char * lf_db_mount_name(const lfDatabase *db, const char *mount)
Definition: lensfun.h:122
int lf_modifier_initialize(lfModifier *modifier, const lfLens *lens, lfPixelFormat format, float focal, float aperture, float distance, float scale, lfLensType targeom, int flags, cbool reverse)
void lf_modifier_add_color_callback(lfModifier *modifier, lfModifyColorFunc callback, int priority, void *data, size_t data_size)
This flag makes Lensfun to sort the results by focal length, and remove all double lens names.
Definition: lensfun.h:1351
3rd order polynomial model, which is a subset of the PTLens model.
Definition: lensfun.h:481
Third order polynomial.
Definition: lensfun.h:600
PTLens model, which is also used by Hugin.
Definition: lensfun.h:498
void lf_camera_copy(lfCamera *dest, const lfCamera *source)
Copy the data from one lfCamera structure into another.
use a rectangular crop
Definition: lensfun.h:728
void lf_lens_add_calib_tca(lfLens *lens, const lfLensCalibTCA *tcac)
Struct to save image crop, which can depend on the focal length.
Definition: lensfun.h:738
lfLensCalibFov ** CalibFov
Definition: lensfun.h:899
lfError lf_db_load_path(lfDatabase *db, const char *pathname)
const char *const lf_db_system_updates_location
float Focal
Nominal focal length in mm at which this calibration data was taken.
Definition: lensfun.h:532
const char * Name
Parameter name (something like 'k', 'k3', 'omega' etc.)
Definition: lensfun.h:788
Definition: lensfun.h:1818
const char * lf_mlstr_get(const lfMLstr str)
Get a string corresponding to current locale from a multi-language string.
float MaxFocal
Definition: lensfun.h:865
Orthographic fisheye.
Definition: lensfun.h:832
cbool lf_modifier_add_coord_callback_scale(lfModifier *modifier, float scale, cbool reverse)
cbool lf_lens_interpolate_crop(const lfLens *lens, float focal, lfLensCalibCrop *res)
void lf_camera_destroy(lfCamera *camera)
Destroy a lfCamera object.
float Focal
Focal length in mm at which this calibration data was taken.
Definition: lensfun.h:741
lfLensCalibCrop ** CalibCrop
Definition: lensfun.h:897
DEPRECATED char * UserUpdatesDir
Home lens database directory for automatic updates (deprecated). Replaced by lfDatabase::UserUpdatesL...
Definition: lensfun.h:1372
int Score
Definition: lensfun.h:901
const lfMount * lf_db_find_mount(const lfDatabase *db, const char *mount)
void lf_lens_copy(lfLens *dest, const lfLens *source)
Copy the data from one lfLens structure into another.
lfComponentRole
These constants define the role of every pixel component, four bits each. "pixel" refers here to a se...
Definition: lensfun.h:1850
float Distance
Focus distance in meters.
Definition: lensfun.h:713
Equisolid fisheye.
Definition: lensfun.h:836
Fisheye as measured by Thoby (for Nikkor 10.5).
Definition: lensfun.h:842
cbool lf_modifier_add_subpixel_callback_TCA(lfModifier *modifier, lfLensCalibTCA *model, cbool reverse)
This structure contains everything specific to a camera mount.
Definition: lensfun.h:205
static const char *const SystemUpdatesLocation
System lens database directory for automatic updates (something like "/var/lib/lensfun-updates")
Definition: lensfun.h:1385
void lf_lens_add_calib_distortion(lfLens *lens, const lfLensCalibDistortion *dc)
void lf_modifier_add_coord_callback(lfModifier *modifier, lfModifyCoordFunc callback, int priority, void *data, size_t data_size)
cbool lf_mount_check(lfMount *mount)
Unknown lens type.
Definition: lensfun.h:805
const lfCamera ** lf_db_find_cameras_ext(const lfDatabase *db, const char *maker, const char *model, int sflags)
const char * lf_get_tca_model_desc(enum lfTCAModel model, const char **details, const lfParameter ***params)
Equirectangular.
Definition: lensfun.h:830
float MinAperture
Definition: lensfun.h:867
void(* lfSubpixelCoordFunc)(void *data, float *iocoord, int count)
A callback function which modifies the separate coordinates for all color components for every pixel ...
Definition: lensfun.h:1922
Definition: lensfun.h:1827
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)
long int lf_db_read_timestamp(lfDatabase *db, const char *dirname)
void(* lfModifyCoordFunc)(void *data, float *iocoord, int count)
A callback function which modifies the coordinates of a strip of pixels.
Definition: lensfun.h:1963
float FieldOfView
Field of view for given images.
Definition: lensfun.h:777
Definition: lensfun.h:1867
#define C_TYPEDEF(t, c)
Definition: lensfun.h:32
float Default
Default value for the parameter.
Definition: lensfun.h:794
float MaxAperture
Definition: lensfun.h:869
const lfLens ** lf_db_find_lenses(const lfDatabase *db, const lfLens *lens, int sflags)
float AspectRatio
Definition: lensfun.h:887
void lf_db_destroy(lfDatabase *db)
Destroy the database object.
lfLensCalibDistortion ** CalibDistortion
Definition: lensfun.h:891
lfCropMode
Different crop modes.
Definition: lensfun.h:723
No TCA correction data is known.
Definition: lensfun.h:576
char * lfMLstr
Definition: lensfun.h:112
Definition: lensfun.h:1871
void lf_mount_copy(lfMount *dest, const lfMount *source)
Copy the data from one lfMount structure into another.
const char *const lf_db_user_updates_location
lfDatabase * lf_db_new(void)
Create a new empty database object.
lfMLstr Model
Definition: lensfun.h:861
lfMount * lf_mount_new()
Create a new mount object.
DEPRECATED cbool lf_lens_interpolate_fov(const lfLens *lens, float focal, lfLensCalibFov *res)
DEPRECATED void lf_lens_add_calib_fov(lfLens *lens, const lfLensCalibFov *cf)
A lens database object.
Definition: lensfun.h:1367
Definition: lensfun.h:1863
lfPixelFormat
A list of pixel formats supported by internal colour callbacks.
Definition: lensfun.h:1831
Equidistant fisheye.
Definition: lensfun.h:816
Distortion parameters are unknown.
Definition: lensfun.h:473
cbool RealFocalMeasured
Whether the real focal length was actually measured.
Definition: lensfun.h:553
lfError lf_db_load_data(lfDatabase *db, const char *errcontext, const char *data, size_t data_size)
Pablo D'Angelo vignetting model (which is a more general variant of the law).
Definition: lensfun.h:681
double lf_f64
Definition: lensfun.h:136
unsigned short lf_u16
Definition: lensfun.h:130
const lfMount *const * lf_db_get_mounts(const lfDatabase *db)
cbool lf_modifier_add_color_callback_vignetting(lfModifier *modifier, lfLensCalibVignetting *model, lfPixelFormat format, cbool reverse)
int Score
Camera matching score, used while searching: not actually a camera parameter.
Definition: lensfun.h:335
cbool lf_camera_check(lfCamera *camera)
cbool lf_lens_interpolate_tca(const lfLens *lens, float focal, lfLensCalibTCA *res)
static const char *const UserLocation
Home lens database directory (something like "~/.local/share/lensfun")
Definition: lensfun.h:1377
cbool lf_modifier_apply_geometry_distortion(lfModifier *modifier, float xu, float yu, int width, int height, float *res)
lfError lf_db_save_all(const lfDatabase *db, const char *filename)
lfCamera * lf_camera_new()
Create a new camera object.
#define cbool
C-compatible bool type; don't bother to define Yet Another Boolean Type.
Definition: lensfun.h:102
lfLensCalibTCA ** CalibTCA
Definition: lensfun.h:893
Lens data. Unknown fields are set to NULL or 0.
Definition: lensfun.h:856
cbool lf_lens_remove_calib_distortion(lfLens *lens, int idx)
Adobe's vignetting model. It differs from D'Angelo's model only in the coordinate system....
Definition: lensfun.h:692
float CenterX
Definition: lensfun.h:881
char * lf_db_save(const lfMount *const *mounts, const lfCamera *const *cameras, const lfLens *const *lenses)
float Focal
Focal length in mm at which this calibration data was taken.
Definition: lensfun.h:709
const char * lf_get_crop_desc(enum lfCropMode mode, const char **details, const lfParameter ***params)
float Focal
Focal length in mm at which this calibration data was taken.
Definition: lensfun.h:645
cbool lf_lens_remove_calib_crop(lfLens *lens, int idx)
cbool lf_lens_interpolate_distortion(const lfLens *lens, float focal, lfLensCalibDistortion *res)
DEPRECATED cbool lf_lens_remove_calib_fov(lfLens *lens, int idx)
lfError lf_db_save_file(const lfDatabase *db, const char *filename, const lfMount *const *mounts, const lfCamera *const *cameras, const lfLens *const *lenses)
Definition: lensfun.h:1823
No vignetting correction data is known.
Definition: lensfun.h:671
Definition: lensfun.h:1825
DEPRECATED lfError lf_db_load_file(lfDatabase *db, const char *filename)
lfMLstr lf_mlstr_add(lfMLstr str, const char *lang, const char *trstr)
Add a new translated string to a multi-language string.
float Min
Minimal value that has sense.
Definition: lensfun.h:790
lfError lf_db_load(lfDatabase *db)
cbool lf_lens_check(lfLens *lens)
const char * lf_get_vignetting_model_desc(enum lfVignettingModel model, const char **details, const lfParameter ***params)
A modifier object contains optimized data required to rectify a image.
Definition: lensfun.h:2071
lfLensCalibVignetting ** CalibVignetting
Definition: lensfun.h:895
DEPRECATED char * HomeDataDir
Home lens database directory (deprecated). Replaced by lfDatabase::UserLocation.
Definition: lensfun.h:1370
Panoramic (cylindrical)
Definition: lensfun.h:823
void lf_lens_add_calib_crop(lfLens *lens, const lfLensCalibCrop *cc)
cbool lf_lens_remove_calib_tca(lfLens *lens, int idx)
Struct to save calibrated field of view, which can depends on the focal length (DEPRECATED)
Definition: lensfun.h:764
Definition: lensfun.h:1856