Opencv,读取 XML 文件进行相机校准时出错



我正在使用opencv提供的代码进行相机校准。 我已经编辑了设置文件以包含我自己的目录,它看起来像这样:

<?xml version="1.0"?>
<opencv_storage>
<images>
"20170720_024951.jpg"
"20170720_025001.jpg"
"20170720_025014.jpg"
"20170720_025023.jpg"
"20170720_025034.jpg"
"20170720_025048.jpg"
"20170720_025103.jpg"
"20170720_025115.jpg"
"20170720_025124.jpg"
"20170720_025133.jpg"
"20170720_025147.jpg"
"20170720_025155.jpg"
"20170720_025211.jpg"
</images>

我提供了完整的图像路径,但收到此错误:

检测到无效输入。应用程序停止。

这是我收到错误的代码部分:

Settings s;
const string inputSettingsFile = "C:/Users/user/Documents/Visual Studio 2013/Projects/calibration/x.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;
}

oencv 提供的源文件在属性(图像的路径(周围不包含",所以我首先尝试在XML 文件中插入图像的路径,而不使用双引号"path/image.jpg" ->路径/图像,但引发了以下异常:

OpenCV 错误:解析错误 (C:/Users/user/Documents/Visual Studio 2013/项目/计算/x.xml(1(:属性值应 放入单引号或双引号(在 icvXMLParseTag, 文件中 C:\builds\master_PackSlave-win64-vc12-shared\opencv\modules\core\src\persistence.cpp, 2157路

按照某人的建议添加"后,异常消失了,但仍然卡在第一个错误上(这说明我认为XML文件的格式不正确(

看起来文件末尾缺少</opencv_storage>。您需要关闭标记才能使 XML 有效。

好的,问题解决了: 对于第二个问题

OpenCV 错误:解析错误 (C:/Users/user/Documents/Visual Studio 2013/项目/计算/x.xml(1(:属性值应放入 单引号或双引号(在 icvXML 中,文件 C:\builds\master_PackSlave-win64-vc12-shared\opencv\modules\core\src\persistence.cpp, 2157路

事实证明,我的图像的路径包含空格,因此只需将图像移动到另一个不包含空格的目录即可解决。

对于第一个问题,我完全是个傻瓜! 要使用代码,您需要两个XML文件!
第一个是您放置校准设置的位置(例如,您使用的是棋盘、圆圈网格还是其他任何东西,以及您使用的棋盘的大小,以及您的图像所在的第二个 XML 的目录,......
在第二个 XML 文件中,您插入图像,如我的问题所示。

我遇到了同样的问题,只需删除目录路径中的空格,它应该可以工作

C:/Users/user/Documents/Visual Studio 2013/Projects/calebration/x.xml

应该是: C:/Users/user/Documents/Visual_Studio_2013/Projects/calebration/x.xml

最新更新