123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- // This file is part of OpenCV project.
- // It is subject to the license terms in the LICENSE file found in the top-level directory
- // of this distribution and at http://opencv.org/license.html.
- #ifndef CALIB_COMMON_HPP
- #define CALIB_COMMON_HPP
- #include <opencv2/core.hpp>
- #include <memory>
- #include <vector>
- #include <string>
- namespace calib
- {
- #define OVERLAY_DELAY 1000
- #define IMAGE_MAX_WIDTH 1280
- #define IMAGE_MAX_HEIGHT 960
- bool showOverlayMessage(const std::string& message);
- enum InputType { Video, Pictures };
- enum InputVideoSource { Camera, File };
- enum TemplateType { AcirclesGrid, Chessboard, chAruco, DoubleAcirclesGrid };
- static const std::string mainWindowName = "Calibration";
- static const std::string gridWindowName = "Board locations";
- static const std::string consoleHelp = "Hot keys:\nesc - exit application\n"
- "s - save current data to .xml file\n"
- "r - delete last frame\n"
- "u - enable/disable applying undistortion\n"
- "d - delete all frames\n"
- "v - switch visualization";
- static const double sigmaMult = 1.96;
- struct calibrationData
- {
- cv::Mat cameraMatrix;
- cv::Mat distCoeffs;
- cv::Mat stdDeviations;
- cv::Mat perViewErrors;
- std::vector<cv::Mat> rvecs;
- std::vector<cv::Mat> tvecs;
- double totalAvgErr;
- cv::Size imageSize;
- std::vector<std::vector<cv::Point2f> > imagePoints;
- std::vector< std::vector<cv::Point3f> > objectPoints;
- std::vector<cv::Mat> allCharucoCorners;
- std::vector<cv::Mat> allCharucoIds;
- cv::Mat undistMap1, undistMap2;
- calibrationData()
- {
- imageSize = cv::Size(IMAGE_MAX_WIDTH, IMAGE_MAX_HEIGHT);
- }
- };
- struct cameraParameters
- {
- cv::Mat cameraMatrix;
- cv::Mat distCoeffs;
- cv::Mat stdDeviations;
- double avgError;
- cameraParameters(){}
- cameraParameters(cv::Mat& _cameraMatrix, cv::Mat& _distCoeffs, cv::Mat& _stdDeviations, double _avgError = 0) :
- cameraMatrix(_cameraMatrix), distCoeffs(_distCoeffs), stdDeviations(_stdDeviations), avgError(_avgError)
- {}
- };
- struct captureParameters
- {
- InputType captureMethod;
- InputVideoSource source;
- TemplateType board;
- cv::Size boardSize;
- int charucoDictName;
- int calibrationStep;
- float charucoSquareLength, charucoMarkerSize;
- float captureDelay;
- float squareSize;
- float templDst;
- std::string videoFileName;
- bool flipVertical;
- int camID;
- int fps;
- cv::Size cameraResolution;
- int maxFramesNum;
- int minFramesNum;
- captureParameters()
- {
- calibrationStep = 1;
- captureDelay = 500.f;
- maxFramesNum = 30;
- minFramesNum = 10;
- fps = 30;
- cameraResolution = cv::Size(IMAGE_MAX_WIDTH, IMAGE_MAX_HEIGHT);
- }
- };
- struct internalParameters
- {
- double solverEps;
- int solverMaxIters;
- bool fastSolving;
- double filterAlpha;
- internalParameters()
- {
- solverEps = 1e-7;
- solverMaxIters = 30;
- fastSolving = false;
- filterAlpha = 0.1;
- }
- };
- }
- #endif
|