21#ifndef LIBMV_SIMPLE_PIPELINE_CAMERA_INTRINSICS_H_
22#define LIBMV_SIMPLE_PIPELINE_CAMERA_INTRINSICS_H_
50 int width()
const {
return width_; }
51 int height()
const {
return height_; }
64 template <
typename WarpFunction>
74 template <
typename PixelType>
75 void Apply(
const PixelType* input_buffer,
79 PixelType* output_buffer);
105 template <
typename WarpFunction>
135 const Mat3&
K()
const {
return K_; }
160 double* normalized_x,
161 double* normalized_y)
const;
167 double* image_y)
const;
177 double* image_y)
const = 0;
185 double* normalized_x,
186 double* normalized_y)
const = 0;
212 template <
typename PixelType>
218 PixelType* output_buffer);
241 template <
typename PixelType>
247 PixelType* output_buffer);
310 double* image_y)
const override;
318 double* normalized_x,
319 double* normalized_y)
const override;
366 double* image_y)
const override;
374 double* normalized_x,
375 double* normalized_y)
const override;
419 double* image_y)
const override;
427 double* normalized_x,
428 double* normalized_y)
const override;
483 double* image_y)
const override;
491 double* normalized_x,
492 double* normalized_y)
const override;
DivisionCameraIntrinsics()
DistortionModelType GetDistortionModelType() const override
void ApplyIntrinsics(double normalized_x, double normalized_y, double *image_x, double *image_y) const override
virtual void Unpack(const PackedIntrinsics &packed_intrinsics) override
virtual void Pack(PackedIntrinsics *packed_intrinsics) const override
void SetRadialDistortion(double k1, double k2, double k3, double k4)
void SetTangentialDistortion(double p1, double p2)
void InvertIntrinsics(double image_x, double image_y, double *normalized_x, double *normalized_y) const override
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)
void NormalizedToImageSpace(double normalized_x, double normalized_y, double *image_x, double *image_y) const
virtual void InvertIntrinsics(double image_x, double image_y, double *normalized_x, double *normalized_y) const =0
virtual void Unpack(const PackedIntrinsics &packed_intrinsics)
virtual void Pack(PackedIntrinsics *packed_intrinsics) const
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_x() const
void SetK(const Mat3 new_k)
double focal_length() const
virtual ~CameraIntrinsics()
double focal_length_y() const
virtual DistortionModelType GetDistortionModelType() const =0
void ImageSpaceToNormalized(double image_x, double image_y, double *normalized_x, double *normalized_y) const
virtual void Unpack(const PackedIntrinsics &packed_intrinsics) override
DivisionCameraIntrinsics()
virtual void Pack(PackedIntrinsics *packed_intrinsics) const override
void InvertIntrinsics(double image_x, double image_y, double *normalized_x, double *normalized_y) const override
DistortionModelType GetDistortionModelType() const override
void ApplyIntrinsics(double normalized_x, double normalized_y, double *image_x, double *image_y) const override
void SetDistortion(double k1, double k2)
virtual void Pack(PackedIntrinsics *packed_intrinsics) const override
DistortionModelType GetDistortionModelType() const override
void InvertIntrinsics(double image_x, double image_y, double *normalized_x, double *normalized_y) const override
virtual void Unpack(const PackedIntrinsics &packed_intrinsics) override
void SetDistortion(double k1, double k2)
void ApplyIntrinsics(double normalized_x, double normalized_y, double *image_x, double *image_y) const override
virtual void Pack(PackedIntrinsics *packed_intrinsics) const override
void InvertIntrinsics(double image_x, double image_y, double *normalized_x, double *normalized_y) const override
void SetTangentialDistortion(double p1, double p2)
virtual void Unpack(const PackedIntrinsics &packed_intrinsics) override
PolynomialCameraIntrinsics()
void SetRadialDistortion(double k1, double k2, double k3)
void ApplyIntrinsics(double normalized_x, double normalized_y, double *image_x, double *image_y) const override
DistortionModelType GetDistortionModelType() const override
void Apply(const PixelType *input_buffer, int width, int height, int channels, PixelType *output_buffer)
void Update(const CameraIntrinsics &intrinsics, int width, int height, double overscan)
std::ostream & operator<<(std::ostream &os, const CameraIntrinsics &intrinsics)
A human-readable representation of the camera intrinsic parameters.
Eigen::Matrix< double, 3, 3 > Mat3
@ DISTORTION_MODEL_POLYNOMIAL
@ DISTORTION_MODEL_DIVISION