Skip to content
Snippets Groups Projects
Commit d7bae72d authored by Nicolas Pope's avatar Nicolas Pope
Browse files

Merge branch 'feature/gui2' of gitlab.utu.fi:nicolas.pope/ftl into feature/gui2

parents bcfbf8fe 8c74f183
No related branches found
No related tags found
1 merge request!316Resolves #343 GUI and Frame Refactor
Pipeline #28260 passed
...@@ -348,25 +348,28 @@ std::vector<T> flatten(const std::vector<typename std::vector<T>> &in) { ...@@ -348,25 +348,28 @@ std::vector<T> flatten(const std::vector<typename std::vector<T>> &in) {
} }
void ExtrinsicCalibration::run() { void ExtrinsicCalibration::run() {
while(!running_.exchange(true)) { setCapture(false); } running_ = false; if (running_.exchange(true)) { return; }
future_ = ftl::pool.push([this](int id) {
auto path = points_.visibility().shortestPath(0); auto path = points_.visibility().shortestPath(0);
auto points = points_.getPoints({0, 1}, 0); auto points = points_.getPoints({0, 1}, 0);
cv::Mat R, t, E, F; cv::Mat R, t;
auto K1 = cameras_[0].calib.intrinsic.matrix(); auto K1 = cameras_[0].calib.intrinsic.matrix();
auto K2 = cameras_[1].calib.intrinsic.matrix(); auto K2 = cameras_[1].calib.intrinsic.matrix();
auto dist1 = cameras_[0].calib.intrinsic.distCoeffs.Mat(); auto dist1 = cameras_[0].calib.intrinsic.distCoeffs.Mat();
auto dist2 = cameras_[1].calib.intrinsic.distCoeffs.Mat(); auto dist2 = cameras_[1].calib.intrinsic.distCoeffs.Mat();
auto size = cameras_[0].calib.intrinsic.resolution; auto size = cameras_[0].calib.intrinsic.resolution;
auto object = calib_object_->object(); auto object = calib_object_->object();
auto points3d = std::vector<cv::Point3d>();
try { try {
/*float rms = cv::stereoCalibrate(s_object, s_points1, s_points2, /*float rms = cv::stereoCalibrate(s_object, s_points1, s_points2,
K1, dist1, K2, dist2, size, R, t, E, F, cv::CALIB_FIX_INTRINSIC, K1, dist1, K2, dist2, size, R, t, E, F, cv::CALIB_FIX_INTRINSIC,
cv::TermCriteria(cv::TermCriteria::COUNT+cv::TermCriteria::EPS, 15, 1.0e-6)); cv::TermCriteria(cv::TermCriteria::COUNT+cv::TermCriteria::EPS, 15, 1.0e-6));
*/ */
/*float rms = ftl::calibration::calibratePair float rms = ftl::calibration::calibratePair
(K1, dist1, K2, dist2, points[0], points[1], object, R, t, points3d);*/ (K1, dist1, K2, dist2, points[0], points[1], object, R, t, points3d);
LOG(INFO) << R; LOG(INFO) << R;
LOG(INFO) << t; LOG(INFO) << t;
//LOG(INFO) << "error (RMS): " << rms; //LOG(INFO) << "error (RMS): " << rms;
...@@ -376,7 +379,9 @@ void ExtrinsicCalibration::run() { ...@@ -376,7 +379,9 @@ void ExtrinsicCalibration::run() {
catch (std::exception &ex) { catch (std::exception &ex) {
LOG(ERROR) << ex.what(); LOG(ERROR) << ex.what();
} }
return;
running_ = false;
});
} }
ftl::calibration::CalibrationData::Calibration ExtrinsicCalibration::getCalibration(CameraID id) { ftl::calibration::CalibrationData::Calibration ExtrinsicCalibration::getCalibration(CameraID id) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment