56 default: assert(!
"Unknown distortion model");
70 double focal_length = libmv_camera_intrinsics_options->
focal_length;
108 if (polynomial_intrinsics->
k1() != k1 ||
109 polynomial_intrinsics->
k2() != k2 ||
110 polynomial_intrinsics->
k3() != k3) {
123 double k1 = libmv_camera_intrinsics_options->
division_k1;
124 double k2 = libmv_camera_intrinsics_options->
division_k2;
126 if (division_intrinsics->
k1() != k1 || division_intrinsics->
k2() != k2) {
140 double k1 = libmv_camera_intrinsics_options->
nuke_k1;
141 double k2 = libmv_camera_intrinsics_options->
nuke_k2;
143 if (nuke_intrinsics->
k1() != k1 || nuke_intrinsics->
k2() != k2) {
157 double k1 = libmv_camera_intrinsics_options->
brown_k1;
158 double k2 = libmv_camera_intrinsics_options->
brown_k2;
159 double k3 = libmv_camera_intrinsics_options->
brown_k3;
160 double k4 = libmv_camera_intrinsics_options->
brown_k4;
162 if (brown_intrinsics->
k1() != k1 || brown_intrinsics->
k2() != k2 ||
163 brown_intrinsics->
k3() != k3 || brown_intrinsics->
k4() != k4) {
167 double p1 = libmv_camera_intrinsics_options->
brown_p1;
168 double p2 = libmv_camera_intrinsics_options->
brown_p2;
170 if (brown_intrinsics->
p1() != p1 || brown_intrinsics->
p2() != p2) {
176 default: assert(!
"Unknown distortion model");
208 camera_intrinsics_options->
polynomial_k1 = polynomial_intrinsics->
k1();
209 camera_intrinsics_options->
polynomial_k2 = polynomial_intrinsics->
k2();
210 camera_intrinsics_options->
polynomial_k3 = polynomial_intrinsics->
k3();
211 camera_intrinsics_options->
polynomial_p1 = polynomial_intrinsics->
p1();
212 camera_intrinsics_options->
polynomial_p2 = polynomial_intrinsics->
p2();
221 camera_intrinsics_options->
division_k1 = division_intrinsics->
k1();
222 camera_intrinsics_options->
division_k2 = division_intrinsics->
k2();
230 camera_intrinsics_options->
nuke_k1 = nuke_intrinsics->
k1();
231 camera_intrinsics_options->
nuke_k2 = nuke_intrinsics->
k2();
240 camera_intrinsics_options->
brown_k1 = brown_intrinsics->
k1();
241 camera_intrinsics_options->
brown_k2 = brown_intrinsics->
k2();
242 camera_intrinsics_options->
brown_k3 = brown_intrinsics->
k3();
243 camera_intrinsics_options->
brown_k4 = brown_intrinsics->
k4();
244 camera_intrinsics_options->
brown_p1 = brown_intrinsics->
p1();
245 camera_intrinsics_options->
brown_p2 = brown_intrinsics->
p2();
249 default: assert(!
"Unknown distortion model");
255 const unsigned char* source_image,
260 unsigned char* destination_image) {
263 source_image, width, height, overscan,
channels, destination_image);
268 const float* source_image,
273 float* destination_image) {
276 source_image, width, height, overscan,
channels, destination_image);
281 const unsigned char* source_image,
286 unsigned char* destination_image) {
289 source_image, width, height, overscan,
channels, destination_image);
299 float* destination_image) {
302 source_image, width, height, overscan,
channels, destination_image);
366 camera_intrinsics_options->
nuke_k2);
375 camera_intrinsics_options->
brown_k1,
376 camera_intrinsics_options->
brown_k2,
377 camera_intrinsics_options->
brown_k3,
378 camera_intrinsics_options->
brown_k4);
380 camera_intrinsics_options->
brown_p1,
381 camera_intrinsics_options->
brown_p2);
386 default: assert(!
"Unknown distortion model");
406 default: assert(!
"Unknown distortion model");
410 return camera_intrinsics;
static constexpr int image_width
static constexpr int image_height
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Brightness Control the brightness and contrast of the input color Vector Map input vector components with curves Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert Invert a producing a negative Combine Generate a color from its and blue channels(Deprecated)") DefNode(ShaderNode
void SetRadialDistortion(double k1, double k2, double k3, double k4)
void SetTangentialDistortion(double p1, double p2)
virtual void ApplyIntrinsics(double normalized_x, double normalized_y, double *image_x, double *image_y) const =0
void DistortBuffer(const PixelType *input_buffer, int width, int height, double overscan, int channels, PixelType *output_buffer)
void SetPrincipalPoint(double cx, double cy)
double principal_point_y() const
void SetFocalLength(double focal_x, double focal_y)
virtual void InvertIntrinsics(double image_x, double image_y, double *normalized_x, double *normalized_y) const =0
void SetImageSize(int width, int height)
double principal_point_x() const
void UndistortBuffer(const PixelType *input_buffer, int width, int height, double overscan, int channels, PixelType *output_buffer)
double focal_length() const
void SetThreads(int threads)
virtual DistortionModelType GetDistortionModelType() const =0
void SetDistortion(double k1, double k2)
void SetDistortion(double k1, double k2)
void SetRadialDistortion(double k1, double k2, double k3)
void libmv_cameraIntrinsicsUndistortFloat(const libmv_CameraIntrinsics *libmv_intrinsics, const float *source_image, int width, int height, float overscan, int channels, float *destination_image)
void libmv_cameraIntrinsicsDestroy(libmv_CameraIntrinsics *libmv_intrinsics)
libmv_CameraIntrinsics * libmv_cameraIntrinsicsCopy(const libmv_CameraIntrinsics *libmv_intrinsics)
CameraIntrinsics * libmv_cameraIntrinsicsCreateFromOptions(const libmv_CameraIntrinsicsOptions *camera_intrinsics_options)
void libmv_cameraIntrinsicsUndistortByte(const libmv_CameraIntrinsics *libmv_intrinsics, const unsigned char *source_image, int width, int height, float overscan, int channels, unsigned char *destination_image)
void libmv_cameraIntrinsicsDistortByte(const struct libmv_CameraIntrinsics *libmv_intrinsics, const unsigned char *source_image, int width, int height, float overscan, int channels, unsigned char *destination_image)
void libmv_cameraIntrinsicsApply(const struct libmv_CameraIntrinsics *libmv_intrinsics, double x, double y, double *x1, double *y1)
void libmv_cameraIntrinsicsDistortFloat(const libmv_CameraIntrinsics *libmv_intrinsics, float *source_image, int width, int height, float overscan, int channels, float *destination_image)
static void libmv_cameraIntrinsicsFillFromOptions(const libmv_CameraIntrinsicsOptions *camera_intrinsics_options, CameraIntrinsics *camera_intrinsics)
void libmv_cameraIntrinsicsSetThreads(libmv_CameraIntrinsics *libmv_intrinsics, int threads)
void libmv_cameraIntrinsicsUpdate(const libmv_CameraIntrinsicsOptions *libmv_camera_intrinsics_options, libmv_CameraIntrinsics *libmv_intrinsics)
void libmv_cameraIntrinsicsInvert(const struct libmv_CameraIntrinsics *libmv_intrinsics, double x, double y, double *x1, double *y1)
void libmv_cameraIntrinsicsExtractOptions(const libmv_CameraIntrinsics *libmv_intrinsics, libmv_CameraIntrinsicsOptions *camera_intrinsics_options)
libmv_CameraIntrinsics * libmv_cameraIntrinsicsNew(const libmv_CameraIntrinsicsOptions *libmv_camera_intrinsics_options)
struct libmv_CameraIntrinsics libmv_CameraIntrinsics
@ LIBMV_DISTORTION_MODEL_POLYNOMIAL
@ LIBMV_DISTORTION_MODEL_NUKE
@ LIBMV_DISTORTION_MODEL_BROWN
@ LIBMV_DISTORTION_MODEL_DIVISION
@ DISTORTION_MODEL_POLYNOMIAL
@ DISTORTION_MODEL_DIVISION
#define LIBMV_OBJECT_NEW(type,...)
#define LIBMV_OBJECT_DELETE(what, type)