OpenCV camera_calibration sample. No input found.
Hi,
I'm trying to use the camera_calibration sample file of openCV. It compiles without errors, but for whatever reason the program is not working because the camera is not found.
Input does not exist: Invalid Input detected. Application stopping.
The code of the sample file that generates this error is:
Settings s;
const string inputSettingsFile = argc > 1 ? argv[1] : "default.xml";
FileStorage fs(inputSettingsFile, FileStorage::READ); // Read the settings
if (!fs.isOpened())
{
cout << "Could not open the configuration file: \"" << inputSettingsFile << "\"" << endl;
return -1;
}
fs["Settings"] >> s;
fs.release(); // close Settings file
//! [file_read]
//FileStorage fout("settings.yml", FileStorage::WRITE); // write config as YAML
//fout << "Settings" << s;
if (!s.goodInput)
{
cout << "Invalid input detected. Application stopping. " << endl;
return -1;
}
The XML file looke like this:
<?xml version="1.0"?>
<opencv_storage>
<Settings>
<!-- Number of inner corners per a item row and column. (square, circle) -->
<BoardSize_Width> 7</BoardSize_Width>
<BoardSize_Height>5</BoardSize_Height>
<!-- The size of a square in some user defined metric system (pixel, millimeter)-->
<Square_Size>50</Square_Size>
<!-- The type of input used for camera calibration. One of: CHESSBOARD CIRCLES_GRID ASYMMETRIC_CIRCLES_GRID -->
<Calibrate_Pattern>"CHESSBOARD"</Calibrate_Pattern>
<!-- The input to use for calibration.
To use an input camera -> give the ID of the camera, like "1"
To use an input video -> give the path of the input video, like "/tmp/x.avi"
To use an image list -> give the path to the XML or YAML file containing the list of the images, like "/tmp/circles_list.xml"
-->
<Input>1
</Input>
The camera is found in all other programs. So the camera input is not the problem.
What could cause this error?
try
0
for camera id (1 would actually be the second found webcam)also, imho, taking single images and an imglist(xml) gives better results, since you can check them before, and weed out images with obstructed corners, specular highlites, bad pose etc.
Thanks for your help. But using 0 instead of 1 doesn't work either unfortunately.
Yes, using an image list works quite well. I guess I'll stick with using images then.
idk, maybe it's a flaw in the parser, try again with
<Input>0</Input>
(like, no additional linefeed/whitespace)nope...weird