21#ifndef LIBMV_SIMPLE_PIPELINE_CAMERA_INTRINSICS_H_
22#define LIBMV_SIMPLE_PIPELINE_CAMERA_INTRINSICS_H_
34class CameraIntrinsics;
35class PackedIntrinsics;
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);
101 unsigned char fx, fy;
108 template <
typename WarpFunction>
141 const Mat3&
K()
const {
return K_; }
169 double* normalized_x,
170 double* normalized_y)
const;
176 double* image_y)
const;
186 double* image_y)
const = 0;
194 double* normalized_x,
195 double* normalized_y)
const = 0;
221 template <
typename PixelType>
227 PixelType* output_buffer);
250 template <
typename PixelType>
256 PixelType* output_buffer);
319 double* image_y)
const override;
327 double* normalized_x,
328 double* normalized_y)
const override;
375 double* image_y)
const override;
383 double* normalized_x,
384 double* normalized_y)
const override;
428 double* image_y)
const override;
436 double* normalized_x,
437 double* normalized_y)
const override;
492 double* image_y)
const override;
500 double* normalized_x,
501 double* normalized_y)
const override;
511std::ostream&
operator<<(std::ostream& os,
const CameraIntrinsics& intrinsics);
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
void SetThreads(int threads)
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 SetThreads(int threads)
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