ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
PinholeCameraIntrinsic.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <IJsonConvertible.h>
11 
12 #include <Eigen/Core>
13 
14 #include "CV_db.h"
15 
16 namespace cloudViewer {
17 namespace camera {
18 
29 };
30 
36 public:
39 
46  int height,
47  const Eigen::Matrix3d &intrinsic_matrix);
48 
63  int width, int height, double fx, double fy, double cx, double cy);
64  virtual ~PinholeCameraIntrinsic() override;
65 
66 public:
76  int width, int height, double fx, double fy, double cx, double cy) {
77  width_ = width;
78  height_ = height;
79  intrinsic_matrix_.setIdentity();
80  intrinsic_matrix_(0, 0) = fx;
81  intrinsic_matrix_(1, 1) = fy;
82  intrinsic_matrix_(0, 2) = cx;
83  intrinsic_matrix_(1, 2) = cy;
84  }
85 
87  std::pair<double, double> GetFocalLength() const {
88  return std::make_pair(intrinsic_matrix_(0, 0), intrinsic_matrix_(1, 1));
89  }
90 
93  std::pair<double, double> GetPrincipalPoint() const {
94  return std::make_pair(intrinsic_matrix_(0, 2), intrinsic_matrix_(1, 2));
95  }
96 
98  double GetSkew() const { return intrinsic_matrix_(0, 1); }
99 
101  bool IsValid() const { return (width_ > 0 && height_ > 0); }
102 
103  bool ConvertToJsonValue(Json::Value &value) const override;
104  bool ConvertFromJsonValue(const Json::Value &value) override;
105 
106 public:
108  int width_ = -1;
110  int height_ = -1;
116  Eigen::Matrix3d intrinsic_matrix_;
117 };
118 } // namespace camera
119 } // namespace cloudViewer
#define CV_DB_LIB_API
Definition: CV_db.h:15
int width
int height
Contains the pinhole camera intrinsic parameters.
PinholeCameraIntrinsic(int width, int height, const Eigen::Matrix3d &intrinsic_matrix)
Parameterized Constructor.
bool ConvertFromJsonValue(const Json::Value &value) override
bool IsValid() const
Returns true iff both the width and height are greater than 0.
bool ConvertToJsonValue(Json::Value &value) const override
std::pair< double, double > GetFocalLength() const
Returns the focal length in a tuple of X-axis and Y-axis focal lengths.
void SetIntrinsics(int width, int height, double fx, double fy, double cx, double cy)
Set camera intrinsic parameters.
std::pair< double, double > GetPrincipalPoint() const
PinholeCameraIntrinsic(int width, int height, double fx, double fy, double cx, double cy)
Parameterized Constructor.
PinholeCameraIntrinsic(PinholeCameraIntrinsicParameters)
Parameterized Constructor.
PinholeCameraIntrinsicParameters
Sets default camera intrinsic parameters for sensors.
@ PrimeSenseDefault
Default settings for PrimeSense camera sensor.
@ Kinect2DepthCameraDefault
Default settings for Kinect2 depth camera.
@ Kinect2ColorCameraDefault
Default settings for Kinect2 color camera.
CLOUDVIEWER_HOST_DEVICE Pair< First, Second > make_pair(const First &_first, const Second &_second)
Definition: SlabTraits.h:49
Generic file read and write utility for python interface.