diff --git a/samples/cpp/tutorial_code/calib3d/camera_calibration/camera_calibration.cpp b/samples/cpp/tutorial_code/calib3d/camera_calibration/camera_calibration.cpp index 6df0c1677b..86d8892c19 100644 --- a/samples/cpp/tutorial_code/calib3d/camera_calibration/camera_calibration.cpp +++ b/samples/cpp/tutorial_code/calib3d/camera_calibration/camera_calibration.cpp @@ -101,7 +101,7 @@ public: } else { - if (readStringList(input, imageList)) + if (isListOfImages(input) && readStringList(input, imageList)) { inputType = IMAGE_LIST; nrFrames = (nrFrames < (int)imageList.size()) ? nrFrames : (int)imageList.size(); @@ -169,6 +169,16 @@ public: l.push_back((string)*it); return true; } + + static bool isListOfImages( const string& filename) + { + string s(filename); + // Look for file extension + if( s.find(".xml") == string::npos && s.find(".yaml") == string::npos && s.find(".yml") == string::npos ) + return false; + else + return true; + } public: Size boardSize; // The size of the board -> Number of items by width and height Pattern calibrationPattern;// One of the Chessboard, circles, or asymmetric circle pattern