8 #include <pybind11/native_enum.h>
9 #include <pybind11/pybind11.h>
15 #include "../casters.h"
18 using namespace pybind11::literals;
22 py::class_<ccCameraSensor, ccSensor> pyccCameraSensor(m,
"ccCameraSensor");
24 py::class_<ccCameraSensor::IntrinsicParameters>(pyccCameraSensor,
"IntrinsicParameters")
26 .def_static(
"GetKinectDefaults",
33 {
return py::make_tuple(
self.pixelSize_mm[0],
self.pixelSize_mm[1]); },
36 auto x = pixelSize[0].cast<
float>();
37 auto y = pixelSize[1].cast<
float>();
38 self.pixelSize_mm[0] = x;
39 self.pixelSize_mm[1] = y;
49 py::native_enum<ccCameraSensor::DistortionModel>(
50 pyccCameraSensor,
"DistortionModel",
"enum.Enum",
"ccCameraSensor::DistortionModel.")
51 .value(
"NO_DISTORTION_MODEL", ccCameraSensor::DistortionModel::NO_DISTORTION_MODEL)
52 .value(
"SIMPLE_RADIAL_DISTORTION",
53 ccCameraSensor::DistortionModel::SIMPLE_RADIAL_DISTORTION)
54 .value(
"BROWN_DISTORTION", ccCameraSensor::DistortionModel::BROWN_DISTORTION)
55 .value(
"EXTENDED_RADIAL_DISTORTION",
56 ccCameraSensor::DistortionModel::EXTENDED_RADIAL_DISTORTION)
60 py::class_<ccCameraSensor::LensDistortionParameters>(pyccCameraSensor,
61 "LensDistortionParameters")
66 "RadialDistortionParameters")
72 "ExtendedRadialDistortionParameters")
75 py::class_<ccCameraSensor::BrownDistortionParameters, ccCameraSensor::LensDistortionParameters>(
76 pyccCameraSensor,
"BrownDistortionParameters")
78 "principalPointOffset",
80 {
return py::make_tuple(
self.principalPointOffset[0],
self.principalPointOffset[1]); },
82 const py::tuple &principalPointOffset)
84 auto x = principalPointOffset[0].cast<
float>();
85 auto y = principalPointOffset[1].cast<
float>();
86 self.principalPointOffset[0] = x;
87 self.principalPointOffset[1] = y;
90 "linearDisparityParams",
92 return py::make_tuple(
self.linearDisparityParams[0],
self.linearDisparityParams[1]);
95 const py::tuple &linearDisparityParams)
97 auto x = linearDisparityParams[0].cast<
float>();
98 auto y = linearDisparityParams[1].cast<
float>();
99 self.linearDisparityParams[0] = x;
100 self.linearDisparityParams[1] = y;
105 return py::make_tuple(
106 self.K_BrownParams[0],
self.K_BrownParams[1],
self.K_BrownParams[2]);
110 auto x = K_BrownParams[0].cast<
float>();
111 auto y = K_BrownParams[1].cast<
float>();
112 auto z = K_BrownParams[2].cast<
float>();
114 self.K_BrownParams[0] = x;
115 self.K_BrownParams[1] = y;
116 self.K_BrownParams[2] = z;
121 {
return py::make_tuple(
self.P_BrownParams[0],
self.P_BrownParams[1]); },
124 auto x = P_BrownParams[0].cast<
float>();
125 auto y = P_BrownParams[1].cast<
float>();
126 self.P_BrownParams[0] = x;
127 self.P_BrownParams[1] = y;
130 py::class_<ccCameraSensor::FrustumInformation>(pyccCameraSensor,
"FrustumInformation")
137 .def_readwrite(
"frustumCorners",
139 py::return_value_policy::reference)
140 .def_readwrite(
"frustumHull",
142 py::return_value_policy::reference)
146 .def(py::init<ccCameraSensor::IntrinsicParameters>())
156 "getIntrinsicParameters",
158 {
return self.getDistortionParameters().data(); },
159 py::return_value_policy::reference);
void define_ccCameraSensor(py::module &m)
Camera (projective) sensor.
void setVerticalFov_rad(float fov_rad)
Sets the (vertical) field of view in radians.
float getVerticalFov_rad() const
Returns the (vertical) field of view in radians.
void setVertFocal_pix(float vertFocal_pix)
Sets focal (in pixels)
void setIntrinsicParameters(const IntrinsicParameters ¶ms)
Sets intrinsic parameters.
const IntrinsicParameters & getIntrinsicParameters() const
Returns intrinsic parameters.
float getHorizFocal_pix() const
Returns horizontal focal (in pixels)
Brown's distortion model + Linear Disparity.
Extended radial distortion model.
float k3
3rd radial distortion coefficient
Intrinsic parameters of the camera sensor.
static void GetKinectDefaults(IntrinsicParameters ¶ms)
float horizFocal_pix() const
Returns the horizontal focal pix.
Lens distortion parameters (interface)
virtual DistortionModel getModel() const =0
Returns distortion model type.
Simple radial distortion model.
float k2
2nd radial distortion coefficient
float k1
1st radial distortion coefficient