summaryrefslogtreecommitdiff
path: root/src/camera.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/camera.cpp')
-rw-r--r--src/camera.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/camera.cpp b/src/camera.cpp
new file mode 100644
index 0000000..a78746f
--- /dev/null
+++ b/src/camera.cpp
@@ -0,0 +1,60 @@
+/*
+ * =====================================================================================
+ *
+ * Filename: camera.cpp
+ *
+ * Description: Class for camera
+ *
+ * Version: 1.0
+ * Created: 03/19/2017 09:39:58 PM
+ * Revision: none
+ * Compiler: gcc
+ *
+ * Author: Martin Miller (MHM), miller7@illinois.edu
+ * Organization: Aerospace Robotics and Controls Lab (ARC)
+ *
+ * =====================================================================================
+ */
+#include "camera.h"
+#include <iostream>
+
+/*
+ *--------------------------------------------------------------------------------------
+ * Class: Camera
+ * Method: Camera
+ * Description: constructor
+ *--------------------------------------------------------------------------------------
+ */
+Camera::Camera (const char *fin)
+{
+ YAML::Node config = YAML::LoadFile(fin);
+ _K(0,0) = BINNING*config["camera_matrix"]["data"][0].as<double>();
+ _K(0,1) = BINNING*config["camera_matrix"]["data"][1].as<double>();
+ _K(0,2) = BINNING*config["camera_matrix"]["data"][2].as<double>();
+ _K(1,0) = BINNING*config["camera_matrix"]["data"][3].as<double>();
+ _K(1,1) = BINNING*config["camera_matrix"]["data"][4].as<double>();
+ _K(1,2) = BINNING*config["camera_matrix"]["data"][5].as<double>();
+ _K(2,0) = BINNING*config["camera_matrix"]["data"][6].as<double>();
+ _K(2,1) = BINNING*config["camera_matrix"]["data"][7].as<double>();
+ _K(2,2) = config["camera_matrix"]["data"][8].as<double>();
+
+ _d[0] = config["distortion_coefficients"]["data"][0].as<double>();
+ _d[1] = config["distortion_coefficients"]["data"][1].as<double>();
+ _d[2] = config["distortion_coefficients"]["data"][2].as<double>();
+ _d[3] = config["distortion_coefficients"]["data"][3].as<double>();
+
+} /* ----- end of method Camera::Camera (constructor) ----- */
+
+
+Matrix<double,3,3>
+Camera::K ( )
+{
+ return _K ;
+} /* ----- end of method Camera::K ----- */
+
+Vector4d
+Camera::d ( )
+{
+ return _d;
+} /* ----- end of method Camera::d ----- */
+