28 #if (defined(_MSC_VER) && (_MSC_VER < 1800)) // Visual studio up to VS2013 does not have stdbool.h 45 # define C_TYPEDEF(t,c) 47 # define C_TYPEDEF(t,c) typedef t c c; 63 #define LF_VERSION_MAJOR 0 65 #define LF_VERSION_MINOR 3 67 #define LF_VERSION_MICRO 95 69 #define LF_VERSION_BUGFIX 0 71 #define LF_VERSION ((LF_VERSION_MAJOR << 24) | (LF_VERSION_MINOR << 16) | (LF_VERSION_MICRO << 8) | LF_VERSION_BUGFIX) 75 #define LF_MIN_DATABASE_VERSION 0 76 #define LF_MAX_DATABASE_VERSION 2 79 #if defined CONF_LENSFUN_STATIC 83 # ifdef CONF_SYMBOL_VISIBILITY 84 # if defined PLATFORM_WINDOWS 85 # define LF_EXPORT __declspec(dllexport) 86 # elif defined CONF_COMPILER_GCC || __clang__ 87 # define LF_EXPORT __attribute__((visibility("default"))) 89 # error "I don't know how to change symbol visibility for your compiler" 92 # if defined PLATFORM_WINDOWS || defined _MSC_VER 93 # define LF_EXPORT __declspec(dllimport) 100 #ifndef CONF_LENSFUN_INTERNAL 103 # define DEPRECATED __attribute__((deprecated)) 104 # elif defined(_MSC_VER) 105 # define DEPRECATED __declspec(deprecated) 107 # pragma message("WARNING: You need to implement DEPRECATED for this compiler") 238 lfMount (
const lfMount &other);
243 lfMount &operator = (
const lfMount &other);
248 bool operator == (
const lfMount& other);
265 void SetName (
const char *val,
const char *lang = NULL);
272 void AddCompat (
const char *val);
277 const char*
const* GetCompats ()
const;
287 std::vector<char*> MountCompat;
411 void SetMaker (
const char *val,
const char *lang = NULL);
423 void SetModel (
const char *val,
const char *lang = NULL);
435 void SetVariant (
const char *val,
const char *lang = NULL);
442 void SetMount (
const char *val);
540 return CenterX == other.
CenterX &&
912 lfLensCalibrationSet(
const lfLensCalibrationSet &other)
915 for (
auto *cb : other.CalibDistortion)
917 for (
auto *cb : other.CalibVignetting)
919 for (
auto *cb : other.CalibTCA)
921 for (
auto *cb : other.CalibCrop)
923 for (
auto *cb : other.CalibFov)
927 ~lfLensCalibrationSet()
929 for (
auto cb : CalibDistortion)
931 for (
auto cb : CalibVignetting)
933 for (
auto cb : CalibTCA)
935 for (
auto cb : CalibCrop)
937 for (
auto cb : CalibFov)
943 return CalibDistortion.empty() && CalibTCA.empty() && CalibVignetting.empty() &&
944 CalibCrop.empty() && CalibFov.empty();
947 bool HasDistortion()
const {
return !CalibDistortion.empty(); }
948 bool HasTCA()
const {
return !CalibTCA.empty(); }
949 bool HasVignetting()
const {
return !CalibVignetting.empty(); }
950 bool HasCrop()
const {
return !CalibCrop.empty(); }
951 bool HasFov()
const {
return !CalibFov.empty(); }
956 std::vector<lfLensCalibDistortion*> CalibDistortion;
958 std::vector<lfLensCalibTCA*> CalibTCA;
960 std::vector<lfLensCalibVignetting*> CalibVignetting;
962 std::vector<lfLensCalibCrop*> CalibCrop;
964 std::vector<lfLensCalibFov*> CalibFov;
1103 lfLens (
const lfLens &other);
1113 lfLens &operator = (
const lfLens &other);
1125 void SetMaker (
const char *val,
const char *lang = NULL);
1137 void SetModel (
const char *val,
const char *lang = NULL);
1146 void AddMount (
const char *val);
1165 DEPRECATED bool RemoveCalibDistortion (
int idx);
1204 DEPRECATED bool RemoveCalibVignetting (
int idx);
1255 void RemoveCalibrations();
1265 void GuessParameters ();
1289 static const char *GetDistortionModelDesc (
1306 static const char *GetTCAModelDesc (
1324 static const char *GetVignettingModelDesc (
1342 static const char *GetCropDesc (
1356 static const char *GetLensTypeDesc (
lfLensType type,
const char **details);
1409 bool InterpolateTCA (
float crop,
float focal,
lfLensCalibTCA &res)
const;
1448 bool InterpolateVignetting (
1475 bool InterpolateCrop (
float crop,
float focal,
lfLensCalibCrop &res)
const;
1524 const char*
const* GetMountNames()
const;
1527 void UpdateLegacyCalibPointers();
1529 std::vector<lfLensCalibrationSet*> Calibrations;
1530 std::vector<char*> MountNames;
1772 static long int ReadTimestamp (
const char *dirname);
1788 DEPRECATED bool LoadDirectory (
const char *dirname);
1813 lfError Load (
const char *pathname);
1825 lfError Load (
const char *data,
size_t data_size);
1834 lfError Save (
const char *filename)
const;
1842 char *Save ()
const;
1868 const lfCamera **FindCameras (
const char *maker,
const char *model)
const;
1890 const lfCamera **FindCamerasExt (
const char *maker,
const char *model,
1891 int sflags = 0)
const;
1900 const lfCamera *
const *GetCameras ();
1939 const lfLens **FindLenses (
const lfCamera *camera,
const char *maker,
1940 const char *model,
int sflags = 0)
const;
1949 const lfLens *
const *GetLenses ();
1958 const lfMount *FindMount (
const char *mount)
const;
1967 const char *MountName (
const char *mount)
const;
1976 const lfMount *
const *GetMounts ();
1986 void AddMount (
lfMount *mount);
2006 void AddLens (
lfLens *lens);
2037 void *fuzzycmp,
const char*
const* compat_mounts)
const;
2039 lfError Load (
const char *errcontext,
const char *data,
size_t data_size);
2041 std::vector<lfMount*> Mounts;
2042 std::vector<lfCamera*> Cameras;
2043 std::vector<lfLens*> Lenses;
2109 const char *data,
size_t data_size);
2118 const lfLens *
const *lenses);
2123 const lfLens *
const *lenses);
2127 const lfDatabase *db,
const char *maker,
const char *model);
2131 const lfDatabase *db,
const char *maker,
const char *model,
int sflags);
2139 const char *lens,
int sflags);
2144 const char *maker,
const char *lens,
int sflags);
2238 #define LF_CR_1(a) (LF_CR_ ## a) 2240 #define LF_CR_2(a,b) ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4)) 2242 #define LF_CR_3(a,b,c) ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \ 2243 ((LF_CR_ ## c) << 8)) 2245 #define LF_CR_4(a,b,c,d) ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \ 2246 ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12)) 2248 #define LF_CR_5(a,b,c,d,e) ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \ 2249 ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12) | \ 2250 ((LF_CR_ ## e) << 16)) 2252 #define LF_CR_6(a,b,c,d,e,f) ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \ 2253 ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12) | \ 2254 ((LF_CR_ ## e) << 16) | ((LF_CR_ ## f) << 20)) 2256 #define LF_CR_7(a,b,c,d,e,f,g) ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \ 2257 ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12) | \ 2258 ((LF_CR_ ## e) << 16) | ((LF_CR_ ## f) << 20) | \ 2259 ((LF_CR_ ## g) << 24)) 2261 #define LF_CR_8(a,b,c,d,e,f,g,h) ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \ 2262 ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12) | \ 2263 ((LF_CR_ ## e) << 16) | ((LF_CR_ ## f) << 20) | \ 2264 ((LF_CR_ ## g) << 24) | ((LF_CR_ ## h) << 28)) 2402 DEPRECATED static lfModifier *Create (
const lfLens *lens,
float crop,
int width,
int height);
2451 float distance,
float scale,
lfLensType targeom,
int flags,
bool reverse);
2485 lfModifier (
float imgcrop,
int imgwidth,
int imgheight,
lfPixelFormat pixel_format,
bool reverse =
false);
2509 int EnableDistortionCorrection (
const lfLens* lens,
float focal);
2530 int EnableTCACorrection (
const lfLens* lens,
float focal);
2555 int EnableVignettingCorrection (
const lfLens* lens,
float focal,
float aperture,
float distance);
2569 int EnableProjectionTransform (
const lfLens* lens,
float focal,
lfLensType target_projection);
2580 int EnableScaling (
float scale);
2637 int EnablePerspectiveCorrection (
const lfLens* lens,
float focal,
float *x,
float *y,
int count,
float d);
2652 float GetAutoScale (
bool reverse);
2683 bool ApplyColorModification (
void *pixels,
float x,
float y,
int width,
int height,
2684 int comp_role,
int row_stride)
const;
2716 bool ApplyGeometryDistortion (
float xu,
float yu,
int width,
int height,
2750 bool ApplySubpixelDistortion (
float xu,
float yu,
int width,
int height,
2783 bool ApplySubpixelGeometryDistortion (
float xu,
float yu,
int width,
int height,
2789 struct lfCallbackData
2791 virtual ~lfCallbackData() {}
2794 bool operator<(
const lfCallbackData& c)
const {
return priority < c.priority; }
2795 bool operator>(
const lfCallbackData& c)
const {
return priority > c.priority; }
2800 struct lfCallBackDataPtrComp
2802 bool operator () (
const lfCallbackData* lhs,
const lfCallbackData* rhs)
const {
2803 return lhs->priority < rhs->priority;
2822 typedef void (*lfModifySubpixCoordFunc) (
void *data,
float *iocoord,
int count);
2848 typedef void (*lfModifyColorFunc) (
void *data,
float x,
float y,
2849 void *pixels,
int comp_role,
int count);
2863 typedef void (*lfModifyCoordFunc) (
void *data,
float *iocoord,
int count);
2866 struct lfSubpixelCallback :
public lfCallbackData
2868 lfModifySubpixCoordFunc callback;
2871 struct lfSubpixTCACallback :
public lfSubpixelCallback
2873 float coordinate_correction;
2881 struct lfCoordCallback :
public lfCallbackData
2883 lfModifyCoordFunc callback;
2886 struct lfCoordDistCallbackData :
public lfCoordCallback
2888 float coordinate_correction;
2895 struct lfCoordScaleCallbackData :
public lfCoordCallback
2900 struct lfCoordGeomCallbackData :
public lfCoordCallback
2905 struct lfCoordPerspCallbackData :
public lfCoordCallback
2908 float delta_a, delta_b;
2912 struct lfColorCallback :
public lfCallbackData
2914 lfModifyColorFunc callback;
2917 struct lfColorVignCallbackData :
public lfColorCallback
2919 float coordinate_correction;
2927 std::multiset<lfSubpixelCallback*, lfCallBackDataPtrComp> SubpixelCallbacks;
2929 std::multiset<lfColorCallback*, lfCallBackDataPtrComp> ColorCallbacks;
2931 std::multiset<lfCoordCallback*, lfCallBackDataPtrComp> CoordCallbacks;
2934 typedef struct {
float angle, dist; } lfPoint;
2936 void AddSubpixTCACallback (
const lfLensCalibTCA& lcd, lfModifySubpixCoordFunc func,
int priority);
2937 void AddCoordGeomCallback (
float norm_focal, lfModifyCoordFunc func,
int priority);
2954 double AutoscaleResidualDistance (
float *coord)
const;
2969 float GetTransformedDistance (lfPoint point)
const;
2985 float GetNormalizedFocalLength (
float focal,
const lfLens* lens)
const;
2987 static void ModifyCoord_TCA_Linear (
void *data,
float *iocoord,
int count);
2988 static void ModifyCoord_UnTCA_Poly3 (
void *data,
float *iocoord,
int count);
2989 static void ModifyCoord_TCA_Poly3 (
void *data,
float *iocoord,
int count);
2990 static void ModifyCoord_TCA_ACM (
void *data,
float *iocoord,
int count);
2992 static void ModifyCoord_UnDist_Poly3 (
void *data,
float *iocoord,
int count);
2993 static void ModifyCoord_Dist_Poly3 (
void *data,
float *iocoord,
int count);
2994 #ifdef VECTORIZATION_SSE 2995 static void ModifyCoord_Dist_Poly3_SSE (
void *data,
float *iocoord,
int count);
2997 static void ModifyCoord_UnDist_Poly5 (
void *data,
float *iocoord,
int count);
2998 static void ModifyCoord_Dist_Poly5 (
void *data,
float *iocoord,
int count);
2999 static void ModifyCoord_UnDist_PTLens (
void *data,
float *iocoord,
int count);
3000 static void ModifyCoord_Dist_PTLens (
void *data,
float *iocoord,
int count);
3001 #ifdef VECTORIZATION_SSE 3002 static void ModifyCoord_UnDist_PTLens_SSE (
void *data,
float *iocoord,
int count);
3003 static void ModifyCoord_Dist_PTLens_SSE (
void *data,
float *iocoord,
int count);
3005 static void ModifyCoord_Dist_ACM (
void *data,
float *iocoord,
int count);
3006 static void ModifyCoord_Geom_FishEye_Rect (
void *data,
float *iocoord,
int count);
3007 static void ModifyCoord_Geom_Panoramic_Rect (
void *data,
float *iocoord,
int count);
3008 static void ModifyCoord_Geom_ERect_Rect (
void *data,
float *iocoord,
int count);
3009 static void ModifyCoord_Geom_Rect_FishEye (
void *data,
float *iocoord,
int count);
3010 static void ModifyCoord_Geom_Panoramic_FishEye (
void *data,
float *iocoord,
int count);
3011 static void ModifyCoord_Geom_ERect_FishEye (
void *data,
float *iocoord,
int count);
3012 static void ModifyCoord_Geom_Rect_Panoramic (
void *data,
float *iocoord,
int count);
3013 static void ModifyCoord_Geom_FishEye_Panoramic (
void *data,
float *iocoord,
int count);
3014 static void ModifyCoord_Geom_ERect_Panoramic (
void *data,
float *iocoord,
int count);
3015 static void ModifyCoord_Geom_Rect_ERect (
void *data,
float *iocoord,
int count);
3016 static void ModifyCoord_Geom_FishEye_ERect (
void *data,
float *iocoord,
int count);
3017 static void ModifyCoord_Geom_Panoramic_ERect (
void *data,
float *iocoord,
int count);
3018 static void ModifyCoord_Geom_Orthographic_ERect (
void *data,
float *iocoord,
int count);
3019 static void ModifyCoord_Geom_ERect_Orthographic (
void *data,
float *iocoord,
int count);
3020 static void ModifyCoord_Geom_Stereographic_ERect (
void *data,
float *iocoord,
int count);
3021 static void ModifyCoord_Geom_ERect_Stereographic (
void *data,
float *iocoord,
int count);
3022 static void ModifyCoord_Geom_Equisolid_ERect (
void *data,
float *iocoord,
int count);
3023 static void ModifyCoord_Geom_ERect_Equisolid (
void *data,
float *iocoord,
int count);
3024 static void ModifyCoord_Geom_Thoby_ERect (
void *data,
float *iocoord,
int count);
3025 static void ModifyCoord_Geom_ERect_Thoby (
void *data,
float *iocoord,
int count);
3026 static void ModifyCoord_Perspective_Correction (
void *data,
float *iocoord,
int count);
3027 static void ModifyCoord_Perspective_Distortion (
void *data,
float *iocoord,
int count);
3028 #ifdef VECTORIZATION_SSE 3029 static void ModifyColor_DeVignetting_PA_SSE (
3030 void *data,
float _x,
float _y,
lf_f32 *pixels,
int comp_role,
int count);
3032 #ifdef VECTORIZATION_SSE2 3033 static void ModifyColor_DeVignetting_PA_SSE2 (
3034 void *data,
float _x,
float _y,
lf_u16 *pixels,
int comp_role,
int count);
3037 template<
typename T>
static void ModifyColor_Vignetting_PA (
3038 void *data,
float x,
float y, T *rgb,
int comp_role,
int count);
3039 template<
typename T>
static void ModifyColor_DeVignetting_PA (
3040 void *data,
float x,
float y, T *rgb,
int comp_role,
int count);
3042 static void ModifyCoord_Scale (
void *data,
float *iocoord,
int count);
3044 double Width, Height;
3050 double CenterX, CenterY;
3052 double NormScale, NormUnScale;
3072 const lfLens *lens,
float crop,
int width,
int height);
3076 float imgcrop,
int imgwidth,
int imgheight,
lfPixelFormat pixel_format,
bool reverse);
3084 float focal,
float aperture,
float distance,
float scale,
3098 lfModifier *modifier,
const lfLens* lens,
float focal,
float aperture,
float distance);
3106 lfModifier *modifier,
const lfLens* lens,
float focal,
float *x,
float *y,
int count,
float d);
3114 lfModifier *modifier,
float xu,
float yu,
int width,
int height,
float *res);
3118 lfModifier *modifier,
void *pixels,
float x,
float y,
int width,
int height,
3119 int comp_role,
int row_stride);
3123 lfModifier *modifier,
float xu,
float yu,
int width,
int height,
float *res);
3127 lfModifier *modifier,
float xu,
float yu,
int width,
int height,
float *res);
const lfLens *const * lf_db_get_lenses(lfDatabase *db)
Panoramic (cylindrical)
Definition: lensfun.h:1013
lfDistortionModel
The Lensfun library implements several lens distortion models. This enum lists them.
Definition: lensfun.h:563
float MinAperture
Definition: lensfun.h:1057
const lfCamera *const * lf_db_get_cameras(lfDatabase *db)
Definition: lensfun.h:2195
Definition: lensfun.h:2224
cbool lf_modifier_apply_subpixel_geometry_distortion(lfModifier *modifier, float xu, float yu, int width, int height, float *res)
Adobe Camera Model. The coordinate system is different here. Everything is measured in units of the f...
Definition: lensfun.h:608
unsigned int lf_u32
Definition: lensfun.h:145
static const char *const UserUpdatesLocation
Home lens database directory for automatic updates (something like "~/.local/share/lensfun/updates") ...
Definition: lensfun.h:1731
void lf_lens_add_calib_tca(lfLens *lens, const lfLensCalibTCA *tcac)
const lfCamera ** lf_db_find_cameras(const lfDatabase *db, const char *maker, const char *model)
DEPRECATED void lf_lens_add_calib_fov(lfLens *lens, const lfLensCalibFov *cf)
lfMLstr Maker
Definition: lensfun.h:1049
const char *const lf_db_system_location
void lf_lens_remove_calibrations(lfLens *lens)
float FieldOfView
Field of view for given images.
Definition: lensfun.h:890
Rectilinear lens.
Definition: lensfun.h:1000
lfLens * lf_lens_create()
Create a new lens object.
Definition: lensfun.h:2178
lfLensType Type
Definition: lensfun.h:1063
lfLensCalibAttributes CalibAttr
Pointer to the calibration settings (currently unused).
Definition: lensfun.h:892
This flag makes Lensfun to sort the results by focal length, and remove all double lens names...
Definition: lensfun.h:1702
DEPRECATED char ** Mounts
Definition: lensfun.h:1061
no crop at all
Definition: lensfun.h:837
lfCamera * lf_camera_create()
Create a new camera object.
Definition: lensfun.h:2201
Definition: lensfun.h:2193
5th order polynomial model.
Definition: lensfun.h:583
lfError
Definition: lensfun.h:128
const char * lf_get_distortion_model_desc(enum lfDistortionModel model, const char **details, const lfParameter ***params)
void lf_lens_guess_parameters(lfLens *lens)
float Focal
Focal length in mm at which this calibration data was taken.
Definition: lensfun.h:818
Laterlal chromatic aberrations calibration data.
Definition: lensfun.h:747
DEPRECATED const lfLens ** lf_db_find_lenses_hd(const lfDatabase *db, const lfCamera *camera, const char *maker, const char *lens, int sflags)
DEPRECATED cbool lf_db_load_directory(lfDatabase *db, const char *dirname)
Definition: lensfun.h:135
Lens distortion calibration data.
Definition: lensfun.h:619
static const char *const SystemLocation
System lens database directory (something like "/usr/share/lensfun")
Definition: lensfun.h:1733
double lf_f64
Definition: lensfun.h:149
cbool lf_lens_interpolate_distortion(const lfLens *lens, float crop, float focal, lfLensCalibDistortion *res)
DEPRECATED lfModifier * lf_modifier_new(const lfLens *lens, float crop, int width, int height)
A set of calibration data.
Definition: lensfun.h:904
void lf_lens_copy(lfLens *dest, const lfLens *source)
Copy the data from one lfLens structure into another.
lfLensCalibAttributes CalibAttr
Pointer to the calibration settings (currently unused).
Definition: lensfun.h:865
void lf_mount_destroy(lfMount *mount)
Destroy a lfMount object.
lfModifier * lf_modifier_create(float imgcrop, int imgwidth, int imgheight, lfPixelFormat pixel_format, bool reverse)
cbool lf_lens_remove_calib_tca(lfLens *lens, int idx)
cbool lf_lens_remove_calib_vignetting(lfLens *lens, int idx)
Lens data. Unknown fields are set to NULL or 0.
Definition: lensfun.h:1046
DEPRECATED lfMount * lf_mount_new()
Create a new mount object.
DEPRECATED lfLensCalibDistortion ** CalibDistortion
Definition: lensfun.h:1081
lfPixelFormat
A list of pixel formats supported by internal colour callbacks.
Definition: lensfun.h:2190
Definition: lensfun.h:2182
DEPRECATED float CenterX
Definition: lensfun.h:1073
lfVignettingModel
The Lensfun library supports several models for lens vignetting correction.
Definition: lensfun.h:777
Adobe camera model for TCA. The coordinate system is different here. Everything is measured in units ...
Definition: lensfun.h:735
This structure contains everything specific to a camera mount.
Definition: lensfun.h:218
float MinFocal
Definition: lensfun.h:1053
const char * lf_db_mount_name(const lfDatabase *db, const char *mount)
const char *const lf_db_user_location
Stereographic fisheye.
Definition: lensfun.h:1024
int Score
Definition: lensfun.h:1091
Linear lateral chromatic aberrations model.
Definition: lensfun.h:695
Third order polynomial.
Definition: lensfun.h:707
const char *const * lf_lens_get_mount_names(lfLens *lens)
Definition: lensfun.h:2180
use a circular crop, e.g. for circular fisheye images
Definition: lensfun.h:841
#define cbool
C-compatible bool type; don't bother to define Yet Another Boolean Type.
Definition: lensfun.h:115
DEPRECATED float CropFactor
Definition: lensfun.h:1077
lfMLstr Model
Definition: lensfun.h:1051
float Focal
Focal length in mm at which this calibration data was taken.
Definition: lensfun.h:852
cbool lf_modifier_apply_subpixel_distortion(lfModifier *modifier, float xu, float yu, int width, int height, float *res)
int Score
Camera matching score, used while searching: not actually a camera parameter.
Definition: lensfun.h:378
DEPRECATED char * UserUpdatesDir
Home lens database directory for automatic updates (deprecated). Replaced by lfDatabase::UserUpdatesL...
Definition: lensfun.h:1723
const char *const lf_db_system_updates_location
cbool lf_mount_check(lfMount *mount)
float lf_modifier_get_auto_scale(lfModifier *modifier, cbool reverse)
Orthographic fisheye.
Definition: lensfun.h:1022
lfLensType
Lens type. See Change of projection for further information.
Definition: lensfun.h:992
DEPRECATED char ** Compat
Definition: lensfun.h:227
Definition: lensfun.h:2175
cbool lf_lens_interpolate_crop(const lfLens *lens, float crop, float focal, lfLensCalibCrop *res)
int lf_modifier_enable_vignetting_correction(lfModifier *modifier, const lfLens *lens, float focal, float aperture, float distance)
DEPRECATED lfLensCalibFov ** CalibFov
Definition: lensfun.h:1089
cbool lf_lens_remove_calib_crop(lfLens *lens, int idx)
PTLens model, which is also used by Hugin.
Definition: lensfun.h:591
const char *const * lf_mount_get_compats(lfMount *mount)
Definition: lensfun.h:2226
3rd order polynomial model, which is a subset of the PTLens model.
Definition: lensfun.h:574
use a rectangular crop
Definition: lensfun.h:839
lfError lf_db_load_path(lfDatabase *db, const char *pathname)
float CropFactor
Definition: lensfun.h:533
const char * lf_get_tca_model_desc(enum lfTCAModel model, const char **details, const lfParameter ***params)
const lfMount * lf_db_find_mount(const lfDatabase *db, const char *mount)
lfLensCalibAttributes Attributes
Definition: lensfun.h:907
#define C_TYPEDEF(t, c)
Definition: lensfun.h:45
Equisolid fisheye.
Definition: lensfun.h:1026
Fisheye as measured by Thoby (for Nikkor 10.5).
Definition: lensfun.h:1032
float Focal
Focal length in mm at which this calibration data was taken.
Definition: lensfun.h:752
Definition: lensfun.h:2228
unsigned char lf_u8
Definition: lensfun.h:141
DEPRECATED lfLensCalibTCA ** CalibTCA
Definition: lensfun.h:1083
Definition: lensfun.h:2230
lfLensCalibAttributes CalibAttr
Pointer to the calibration settings (currently unused).
Definition: lensfun.h:826
const lfLens ** lf_db_find_lenses(const lfDatabase *db, const lfCamera *camera, const char *maker, const char *lens, int sflags)
#define LF_EXPORT
This macro expands to an appropiate symbol visibility declaration.
Definition: lensfun.h:81
int lf_modifier_enable_tca_correction(lfModifier *modifier, const lfLens *lens, float focal)
DEPRECATED lfLens * lf_lens_new()
Create a new lens object.
void lf_camera_destroy(lfCamera *camera)
Destroy a lfCamera object.
lfLensCalibAttributes CalibAttr
Pointer to the calibration settings (currently unused).
Definition: lensfun.h:756
float Min
Minimal value that has sense.
Definition: lensfun.h:980
float Max
Maximal value that has sense.
Definition: lensfun.h:982
Unknown lens type.
Definition: lensfun.h:995
cbool RealFocalMeasured
Whether the real focal length was actually measured.
Definition: lensfun.h:658
cbool lf_modifier_apply_color_modification(lfModifier *modifier, void *pixels, float x, float y, int width, int height, int comp_role, int row_stride)
const lfCamera ** lf_db_find_cameras_ext(const lfDatabase *db, const char *maker, const char *model, int sflags)
float RealFocal
Real focal length in mm for this nominal focal length.
Definition: lensfun.h:655
A modifier object contains optimized data required to rectify a image.
Definition: lensfun.h:2350
cbool lf_camera_check(lfCamera *camera)
Definition: lensfun.h:2215
float CropFactor
Camera crop factor (ex: 1.0). Must be defined.
Definition: lensfun.h:376
const char * lf_mlstr_get(const lfMLstr str)
Get a string corresponding to current locale from a multi-language string.
void lf_camera_copy(lfCamera *dest, const lfCamera *source)
Copy the data from one lfCamera structure into another.
Definition: lensfun.h:133
long int lf_db_read_timestamp(lfDatabase *db, const char *dirname)
DEPRECATED float AspectRatio
Definition: lensfun.h:1079
This flag selects a looser search algorithm resulting in more results (still sorted by score)...
Definition: lensfun.h:1690
cbool lf_modifier_enable_projection_transform(lfModifier *modifier, const lfLens *lens, float focal, lfLensType target_projection)
float Distance
Focus distance in meters.
Definition: lensfun.h:822
void lf_lens_add_calib_distortion(lfLens *lens, const lfLensCalibDistortion *dc)
void lf_modifier_destroy(lfModifier *modifier)
DEPRECATED lfLensCalibVignetting ** CalibVignetting
Definition: lensfun.h:1085
float Aperture
Aperture (f-number) at which this calibration data was taken.
Definition: lensfun.h:820
#define DEPRECATED
For marking deprecated functions, see http://stackoverflow.com/a/21265197.
Definition: lensfun.h:108
static const char *const SystemUpdatesLocation
System lens database directory for automatic updates (something like "/var/lib/lensfun-updates") ...
Definition: lensfun.h:1736
Definition: lensfun.h:2232
cbool lf_modifier_apply_geometry_distortion(lfModifier *modifier, float xu, float yu, int width, int height, float *res)
cbool lf_lens_interpolate_tca(const lfLens *lens, float crop, float focal, lfLensCalibTCA *res)
float MaxFocal
Definition: lensfun.h:1055
Definition: lensfun.h:2173
void lf_mount_copy(lfMount *dest, const lfMount *source)
Copy the data from one lfMount structure into another.
float CenterY
Definition: lensfun.h:531
unsigned short lf_u16
Definition: lensfun.h:143
lfComponentRole
These constants define the role of every pixel component, four bits each. "pixel" refers here to a se...
Definition: lensfun.h:2209
const char * lf_get_lens_type_desc(enum lfLensType type, const char **details)
Equirectangular.
Definition: lensfun.h:1020
Definition: lensfun.h:2222
void lf_mount_add_compat(lfMount *mount, const char *val)
float Focal
Nominal focal length in mm at which this calibration data was taken.
Definition: lensfun.h:625
int lf_modifier_enable_scaling(lfModifier *modifier, float scale)
const char *const lf_db_user_updates_location
float Focal
Definition: lensfun.h:880
cbool lf_lens_interpolate_vignetting(const lfLens *lens, float crop, float focal, float aperture, float distance, lfLensCalibVignetting *res)
lfLensCalibAttributes CalibAttr
Calibration settings (currently unused).
Definition: lensfun.h:662
void lf_lens_destroy(lfLens *lens)
Destroy a lfLens object.
DEPRECATED cbool lf_lens_interpolate_fov(const lfLens *lens, float crop, float focal, lfLensCalibFov *res)
DEPRECATED 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)
Definition: lensfun.h:2186
void lf_db_destroy(lfDatabase *db)
Destroy the database object.
DEPRECATED lfCamera * lf_camera_new()
Create a new camera object.
Equidistant fisheye.
Definition: lensfun.h:1006
lfError lf_db_load_data(lfDatabase *db, const char *errcontext, const char *data, size_t data_size)
Definition: lensfun.h:2197
No TCA correction data is known.
Definition: lensfun.h:683
lfMLstr Model
Model name (ex: "Rolleiflex SL35") – same as in EXIF.
Definition: lensfun.h:370
const char * lf_get_crop_desc(enum lfCropMode mode, const char **details, const lfParameter ***params)
DEPRECATED lfLensCalibCrop ** CalibCrop
Definition: lensfun.h:1087
lfMLstr Maker
Camera maker (ex: "Rollei") – same as in EXIF.
Definition: lensfun.h:368
DEPRECATED cbool lf_lens_remove_calib_fov(lfLens *lens, int idx)
int lf_modifier_enable_perspective_correction(lfModifier *modifier, const lfLens *lens, float focal, float *x, float *y, int count, float d)
Definition: lensfun.h:131
void lf_lens_add_mount(lfLens *lens, const char *val)
cbool lf_lens_check(lfLens *lens)
float AspectRatio
Definition: lensfun.h:535
DEPRECATED char * HomeDataDir
Home lens database directory (deprecated). Replaced by lfDatabase::UserLocation.
Definition: lensfun.h:1721
const char * lf_get_vignetting_model_desc(enum lfVignettingModel model, const char **details, const lfParameter ***params)
int lf_modifier_enable_distortion_correction(lfModifier *modifier, const lfLens *lens, float focal)
char * Mount
Camera mount type (ex: "QBM")
Definition: lensfun.h:374
char * lfMLstr
Definition: lensfun.h:125
A lens database object.
Definition: lensfun.h:1718
DEPRECATED lfDatabase * lf_db_new(void)
Create a new empty database object.
void lf_lens_add_calib_crop(lfLens *lens, const lfLensCalibCrop *cc)
const lfMount *const * lf_db_get_mounts(lfDatabase *db)
Pablo D'Angelo vignetting model (which is a more general variant of the law).
Definition: lensfun.h:790
Distortion parameters are unknown.
Definition: lensfun.h:566
lfMLstr Name
Camera mount name.
Definition: lensfun.h:225
lfDatabase * lf_db_create(void)
Create a new empty database object.
Lens vignetting calibration data.
Definition: lensfun.h:813
float CenterX
Definition: lensfun.h:529
float lf_f32
Definition: lensfun.h:147
static const char *const UserLocation
Home lens database directory (something like "~/.local/share/lensfun")
Definition: lensfun.h:1728
lfMLstr lf_mlstr_add(lfMLstr str, const char *lang, const char *trstr)
Add a new translated string to a multi-language string.
No vignetting correction data is known.
Definition: lensfun.h:780
DEPRECATED lfError lf_db_load_file(lfDatabase *db, const char *filename)
void lf_lens_add_calib_vignetting(lfLens *lens, const lfLensCalibVignetting *vc)
Definition: lensfun.h:2184
lfError lf_db_save_all(const lfDatabase *db, const char *filename)
lfTCAModel
The Lensfun library supports several models for lens lateral chromatic aberrations (also called trans...
Definition: lensfun.h:680
float Default
Default value for the parameter.
Definition: lensfun.h:984
DEPRECATED float CenterY
Definition: lensfun.h:1075
Adobe's vignetting model. It differs from D'Angelo's model only in the coordinate system...
Definition: lensfun.h:801
lfCropMode
Different crop modes.
Definition: lensfun.h:834
Struct to save calibrated field of view, which can depends on the focal length (DEPRECATED) ...
Definition: lensfun.h:877
Lens calibration attributes.
Definition: lensfun.h:518
Camera data. Unknown fields are set to NULL.
Definition: lensfun.h:365
char * lf_db_save(const lfMount *const *mounts, const lfCamera *const *cameras, const lfLens *const *lenses)
lfMLstr lf_mlstr_dup(const lfMLstr str)
Create a complete copy of a multi-language string.
lfMount * lf_mount_create()
Create a new mount object.
lfMLstr Variant
Camera variant. Some cameras use same EXIF id for different models.
Definition: lensfun.h:372
Struct to save image crop, which can depend on the focal length.
Definition: lensfun.h:849
Definition: lensfun.h:2199
lfError lf_db_save_file(const lfDatabase *db, const char *filename, const lfMount *const *mounts, const lfCamera *const *cameras, const lfLens *const *lenses)
const char * Name
Parameter name (something like 'k', 'k3', 'omega' etc.)
Definition: lensfun.h:978
This structure describes a single parameter for some lens model.
Definition: lensfun.h:975
lfError lf_db_load(lfDatabase *db)
cbool lf_lens_remove_calib_distortion(lfLens *lens, int idx)
float MaxAperture
Definition: lensfun.h:1059