4
4
5
5
#include < opencv2/core.hpp>
6
6
#include < opencv2/calib3d.hpp>
7
- #include < opencv2/aruco/charuco.hpp>
8
7
#include < opencv2/cvconfig.h>
9
8
#include < opencv2/highgui.hpp>
10
9
10
+ #ifdef HAVE_OPENCV_ARUCO
11
+ #include < opencv2/aruco/charuco.hpp>
12
+ #endif
13
+
11
14
#include < string>
12
15
#include < vector>
13
16
#include < stdexcept>
@@ -50,31 +53,27 @@ bool calib::showOverlayMessage(const std::string& message)
50
53
#endif
51
54
}
52
55
53
- static void deleteButton (int state , void * data)
56
+ static void deleteButton (int , void * data)
54
57
{
55
- state++; // to avoid gcc warnings
56
58
(static_cast <cv::Ptr<calibDataController>*>(data))->get ()->deleteLastFrame ();
57
59
calib::showOverlayMessage (" Last frame deleted" );
58
60
}
59
61
60
- static void deleteAllButton (int state , void * data)
62
+ static void deleteAllButton (int , void * data)
61
63
{
62
- state++;
63
64
(static_cast <cv::Ptr<calibDataController>*>(data))->get ()->deleteAllData ();
64
65
calib::showOverlayMessage (" All frames deleted" );
65
66
}
66
67
67
- static void saveCurrentParamsButton (int state , void * data)
68
+ static void saveCurrentParamsButton (int , void * data)
68
69
{
69
- state++;
70
70
if ((static_cast <cv::Ptr<calibDataController>*>(data))->get ()->saveCurrentCameraParameters ())
71
71
calib::showOverlayMessage (" Calibration parameters saved" );
72
72
}
73
73
74
74
#ifdef HAVE_QT
75
- static void switchVisualizationModeButton (int state , void * data)
75
+ static void switchVisualizationModeButton (int , void * data)
76
76
{
77
- state++;
78
77
ShowProcessor* processor = static_cast <ShowProcessor*>(((cv::Ptr<FrameProcessor>*)data)->get ());
79
78
processor->switchVisualizationMode ();
80
79
}
@@ -103,6 +102,11 @@ int main(int argc, char** argv)
103
102
104
103
captureParameters capParams = paramsController.getCaptureParameters ();
105
104
internalParameters intParams = paramsController.getInternalParameters ();
105
+ #ifndef HAVE_OPENCV_ARUCO
106
+ if (capParams.board == chAruco)
107
+ CV_Error (cv::Error::StsNotImplemented, " Aruco module is disabled in current build configuration."
108
+ " Consider usage of another calibration pattern\n " );
109
+ #endif
106
110
107
111
cv::TermCriteria solverTermCrit = cv::TermCriteria (cv::TermCriteria::COUNT+cv::TermCriteria::EPS,
108
112
intParams.solverMaxIters , intParams.solverEps );
@@ -172,6 +176,7 @@ int main(int argc, char** argv)
172
176
calibrationFlags, solverTermCrit);
173
177
}
174
178
else {
179
+ #ifdef HAVE_OPENCV_ARUCO
175
180
cv::Ptr<cv::aruco::Dictionary> dictionary =
176
181
cv::aruco::getPredefinedDictionary (cv::aruco::PREDEFINED_DICTIONARY_NAME (capParams.charucoDictName ));
177
182
cv::Ptr<cv::aruco::CharucoBoard> charucoboard =
@@ -183,6 +188,7 @@ int main(int argc, char** argv)
183
188
globalData->cameraMatrix , globalData->distCoeffs ,
184
189
cv::noArray (), cv::noArray (), globalData->stdDeviations , cv::noArray (),
185
190
globalData->perViewErrors , calibrationFlags, solverTermCrit);
191
+ #endif
186
192
}
187
193
dataController->updateUndistortMap ();
188
194
dataController->printParametersToConsole (std::cout);
0 commit comments