diff options
Diffstat (limited to 'extern/libmv/libmv-capi.h')
-rw-r--r-- | extern/libmv/libmv-capi.h | 187 |
1 files changed, 10 insertions, 177 deletions
diff --git a/extern/libmv/libmv-capi.h b/extern/libmv/libmv-capi.h index 5cd9936723b..524f1822bc7 100644 --- a/extern/libmv/libmv-capi.h +++ b/extern/libmv/libmv-capi.h @@ -27,180 +27,13 @@ #ifndef LIBMV_C_API_H #define LIBMV_C_API_H -#ifdef __cplusplus -extern "C" { -#endif - -struct libmv_Tracks; -struct libmv_Reconstruction; -struct libmv_Features; -struct libmv_CameraIntrinsics; - -/* Logging */ -void libmv_initLogging(const char *argv0); -void libmv_startDebugLogging(void); -void libmv_setLoggingVerbosity(int verbosity); - -/* Planar tracker */ -typedef struct libmv_TrackRegionOptions { - int motion_model; - int num_iterations; - int use_brute; - int use_normalization; - double minimum_correlation; - double sigma; - float *image1_mask; -} libmv_TrackRegionOptions; - -typedef struct libmv_TrackRegionResult { - int termination; - const char *termination_reason; - double correlation; -} libmv_TrackRegionResult; - -int libmv_trackRegion(const libmv_TrackRegionOptions *options, - const float *image1, int image1_width, int image1_height, - const float *image2, int image2_width, int image2_height, - 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, - int num_samples_x, int num_samples_y, - 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); -void libmv_tracksDestroy(struct libmv_Tracks *libmv_tracks); -void libmv_tracksInsert(struct libmv_Tracks *libmv_tracks, int image, int track, double x, double y, double weight); - -/* Reconstruction */ -#define LIBMV_REFINE_FOCAL_LENGTH (1 << 0) -#define LIBMV_REFINE_PRINCIPAL_POINT (1 << 1) -#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; - - /* 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 { - int select_keyframes; - int keyframe1, keyframe2; - - int refine_intrinsics; -} libmv_ReconstructionOptions; - -typedef void (*reconstruct_progress_update_cb) (void *customdata, double progress, const char *message); - -struct libmv_Reconstruction *libmv_solveReconstruction(const struct libmv_Tracks *libmv_tracks, - const libmv_CameraIntrinsicsOptions *libmv_camera_intrinsics_options, - libmv_ReconstructionOptions *libmv_reconstruction_options, - reconstruct_progress_update_cb progress_update_callback, - void *callback_customdata); -struct libmv_Reconstruction *libmv_solveModal(const struct libmv_Tracks *libmv_tracks, - const libmv_CameraIntrinsicsOptions *libmv_camera_intrinsics_options, - const libmv_ReconstructionOptions *libmv_reconstruction_options, - reconstruct_progress_update_cb progress_update_callback, - void *callback_customdata); -void libmv_reconstructionDestroy(struct libmv_Reconstruction *libmv_reconstruction); -int libmv_reprojectionPointForTrack(const struct libmv_Reconstruction *libmv_reconstruction, int track, double pos[3]); -double libmv_reprojectionErrorForTrack(const struct libmv_Reconstruction *libmv_reconstruction, int track); -double libmv_reprojectionErrorForImage(const struct libmv_Reconstruction *libmv_reconstruction, int image); -int libmv_reprojectionCameraForImage(const struct libmv_Reconstruction *libmv_reconstruction, - int image, double mat[4][4]); -double libmv_reprojectionError(const struct libmv_Reconstruction *libmv_reconstruction); -struct libmv_CameraIntrinsics *libmv_reconstructionExtractIntrinsics(struct libmv_Reconstruction *libmv_Reconstruction); - -/* Feature detector */ -enum { - LIBMV_DETECTOR_FAST, - LIBMV_DETECTOR_MORAVEC, - LIBMV_DETECTOR_HARRIS, -}; - -typedef struct libmv_DetectOptions { - int detector; - int margin; - int min_distance; - int fast_min_trackness; - int moravec_max_count; - unsigned char *moravec_pattern; - double harris_threshold; -} libmv_DetectOptions; - -struct libmv_Features *libmv_detectFeaturesByte(const unsigned char *image_buffer, - int width, int height, int channels, - libmv_DetectOptions *options); -struct libmv_Features *libmv_detectFeaturesFloat(const float *image_buffer, - int width, int height, int channels, - libmv_DetectOptions *options); - -void libmv_featuresDestroy(struct libmv_Features *libmv_features); -int libmv_countFeatures(const struct libmv_Features *libmv_features); -void libmv_getFeature(const struct libmv_Features *libmv_features, int number, double *x, double *y, double *score, - double *size); - -/* Camera intrinsics */ -struct libmv_CameraIntrinsics *libmv_cameraIntrinsicsNew( - const libmv_CameraIntrinsicsOptions *libmv_camera_intrinsics_options); -struct libmv_CameraIntrinsics *libmv_cameraIntrinsicsCopy(const struct libmv_CameraIntrinsics *libmv_intrinsics); -void libmv_cameraIntrinsicsDestroy(struct libmv_CameraIntrinsics *libmv_intrinsics); -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_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); -void libmv_cameraIntrinsicsUndistortFloat(const struct libmv_CameraIntrinsics *libmv_intrinsics, - float *src, float *dst, int width, int height, - float overscan, int channels); -void libmv_cameraIntrinsicsDistortByte(const struct libmv_CameraIntrinsics *libmv_intrinsics, - unsigned char *src, unsigned char *dst, int width, int height, - float overscan, int channels); -void libmv_cameraIntrinsicsDistortFloat(const struct libmv_CameraIntrinsics *libmv_intrinsics, - float *src, float *dst, int width, int height, - float overscan, int channels); -void libmv_cameraIntrinsicsApply(const libmv_CameraIntrinsicsOptions *libmv_camera_intrinsics_options, - double x, double y, double *x1, double *y1); -void libmv_cameraIntrinsicsInvert(const libmv_CameraIntrinsicsOptions *libmv_camera_intrinsics_options, - double x, double y, double *x1, double *y1); - -void libmv_homography2DFromCorrespondencesEuc(double (*x1)[2], double (*x2)[2], int num_points, double H[3][3]); - -#ifdef __cplusplus -} -#endif - -#endif // LIBMV_C_API_H +#include "intern/camera_intrinsics.h" +#include "intern/detector.h" +#include "intern/homography.h" +#include "intern/image.h" +#include "intern/logging.h" +#include "intern/reconstruction.h" +#include "intern/track_region.h" +#include "intern/tracks.h" + +#endif // LIBMV_C_API_H |