diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2015-07-14 09:31:59 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2015-07-14 09:31:59 +0200 |
commit | a6b13be4729dd212f0b182aa238f9004ef830388 (patch) | |
tree | ef4dd114245e732e2230a89d4be92d9d74dfc8f9 /opentrack | |
parent | c986731a379191e096a965f4d741bc3853820b8f (diff) | |
parent | ec054c285c22ef1ff54841adb25f2d5abe41bdcb (diff) |
Merge branch 'unstable' into trackhat-ui
Diffstat (limited to 'opentrack')
-rw-r--r-- | opentrack/opencv-calibration.hpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/opentrack/opencv-calibration.hpp b/opentrack/opencv-calibration.hpp new file mode 100644 index 00000000..6dee9908 --- /dev/null +++ b/opentrack/opencv-calibration.hpp @@ -0,0 +1,26 @@ +#pragma once +#include <QCoreApplication> +#include <QString> +#include <QByteArray> +#include <string> +#include <opencv2/core.hpp> + +template<typename = void> +bool get_camera_calibration(const QString& camera_name, cv::Mat& intrinsics, cv::Mat& distortion, int w, int h) +{ + QString pathname_ = QCoreApplication::applicationDirPath() + "/camera/" + camera_name + ".yml"; + std::string pathname = pathname_.toStdString(); + cv::FileStorage fs(pathname, cv::FileStorage::READ); + if (!fs.isOpened()) + return false; + cv::Mat intrinsics_, distortion_; + fs["camera_matrix"] >> intrinsics_; + fs["distortion_coefficients"] >> distortion_; + intrinsics_.at<double>(0, 0) *= w / 640.; + intrinsics_.at<double>(2, 0) *= w / 640.; + intrinsics_.at<double>(1, 1) *= h / 480.; + intrinsics_.at<double>(2, 1) *= h / 480.; + intrinsics = intrinsics_; + distortion = distortion_; + return true; +} |