Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'extern/libmv/libmv-capi.h')
-rw-r--r--extern/libmv/libmv-capi.h42
1 files changed, 32 insertions, 10 deletions
diff --git a/extern/libmv/libmv-capi.h b/extern/libmv/libmv-capi.h
index d183bc4cd41..5cd9936723b 100644
--- a/extern/libmv/libmv-capi.h
+++ b/extern/libmv/libmv-capi.h
@@ -64,11 +64,22 @@ int libmv_trackRegion(const libmv_TrackRegionOptions *options,
const double *x1, const double *y1,
libmv_TrackRegionResult *result,
double *x2, double *y2);
-void libmv_samplePlanarPatch(const float *image, int width, int height,
- int channels, const double *xs, const double *ys,
+void libmv_samplePlanarPatch(const float *image,
+ int width, int height,
+ int channels,
+ const double *xs, const double *ys,
int num_samples_x, int num_samples_y,
- const float *mask, float *patch,
+ const float *mask,
+ float *patch,
double *warped_position_x, double *warped_position_y);
+void libmv_samplePlanarPatchByte(const unsigned char *image,
+ int width, int height,
+ int channels,
+ const double *xs, const double *ys,
+ int num_samples_x, int num_samples_y,
+ const float *mask,
+ unsigned char *patch,
+ double *warped_position_x, double *warped_position_y);
/* Tracks */
struct libmv_Tracks *libmv_tracksNew(void);
@@ -81,12 +92,24 @@ void libmv_tracksInsert(struct libmv_Tracks *libmv_tracks, int image, int track,
#define LIBMV_REFINE_RADIAL_DISTORTION_K1 (1 << 2)
#define LIBMV_REFINE_RADIAL_DISTORTION_K2 (1 << 4)
+enum {
+ LIBMV_DISTORTION_MODEL_POLYNOMIAL = 0,
+ LIBMV_DISTORTION_MODEL_DIVISION = 1,
+};
+
typedef struct libmv_CameraIntrinsicsOptions {
+ /* Common settings of all distortion models. */
+ int distortion_model;
+ int image_width, image_height;
double focal_length;
double principal_point_x, principal_point_y;
- double k1, k2, k3;
- double p1, p2;
- int image_width, image_height;
+
+ /* Radial distortion model. */
+ double polynomial_k1, polynomial_k2, polynomial_k3;
+ double polynomial_p1, polynomial_p2;
+
+ /* Division distortion model. */
+ double division_k1, division_k2;
} libmv_CameraIntrinsicsOptions;
typedef struct libmv_ReconstructionOptions {
@@ -147,7 +170,6 @@ void libmv_getFeature(const struct libmv_Features *libmv_features, int number, d
double *size);
/* Camera intrinsics */
-struct libmv_CameraIntrinsics *libmv_cameraIntrinsicsNewEmpty(void);
struct libmv_CameraIntrinsics *libmv_cameraIntrinsicsNew(
const libmv_CameraIntrinsicsOptions *libmv_camera_intrinsics_options);
struct libmv_CameraIntrinsics *libmv_cameraIntrinsicsCopy(const struct libmv_CameraIntrinsics *libmv_intrinsics);
@@ -155,9 +177,9 @@ void libmv_cameraIntrinsicsDestroy(struct libmv_CameraIntrinsics *libmv_intrinsi
void libmv_cameraIntrinsicsUpdate(const libmv_CameraIntrinsicsOptions *libmv_camera_intrinsics_options,
struct libmv_CameraIntrinsics *libmv_intrinsics);
void libmv_cameraIntrinsicsSetThreads(struct libmv_CameraIntrinsics *libmv_intrinsics, int threads);
-void libmv_cameraIntrinsicsExtract(const struct libmv_CameraIntrinsics *libmv_intrinsics, double *focal_length,
- double *principal_x, double *principal_y, double *k1, double *k2, double *k3,
- int *width, int *height);
+void libmv_cameraIntrinsicsExtractOptions(
+ const struct libmv_CameraIntrinsics *libmv_intrinsics,
+ struct libmv_CameraIntrinsicsOptions *camera_intrinsics_options);
void libmv_cameraIntrinsicsUndistortByte(const struct libmv_CameraIntrinsics *libmv_intrinsics,
unsigned char *src, unsigned char *dst, int width, int height,
float overscan, int channels);