diff --git a/CMakeLists.txt b/CMakeLists.txt index 1cf4902f51444c6f13b15032c209fcf4c076623b..f52f4d5b5c741d05a8f224e3c4763059ebdc4f12 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,8 @@ add_executable(camera_calibration src/main.cc ) +set_property(TARGET camera_calibration PROPERTY CXX_STANDARD 17) + find_package(OpenCV 4 QUIET) if(NOT OpenCV_FOUND) find_package(OpenCV 3 REQUIRED) diff --git a/src/main.cc b/src/main.cc index 8d6f185a311a4df61be531a07157fb5e29af12d4..571872d0bc10f04df61834a5eb600d35e80ea277 100755 --- a/src/main.cc +++ b/src/main.cc @@ -5,6 +5,7 @@ #include <string> #include <ctime> #include <cstdio> +#include <filesystem> #include <opencv2/core.hpp> #include <opencv2/core/utility.hpp> @@ -567,7 +568,11 @@ static void saveCameraParams( Settings& s, Size& imageSize, Mat& cameraMatrix, M const vector<float>& reprojErrs, const vector<vector<Point2f> >& imagePoints, double totalAvgErr ) { + filesystem::create_directories(filesystem::path(s.outputFileName).parent_path()); + FileStorage fs( s.outputFileName, FileStorage::WRITE ); + if (!fs.isOpened()) + throw std::runtime_error("Could not open camara parameters file for writing"); time_t tm; time( &tm );