c++ - 是否可以在 opencv FileStorage 中使用字符串作为名称

标签 c++ opencv

我想使用 opencv FileStorage 对象编写一个 XML 文件。

我看到的大多数示例都像下面这样工作

FileStorage fs("d:\\1.xml" , FileStorage::WRITE); 
fs << "one" << 1; 

我想写一个带有修改后的名称变量的部分,这意味着不必在编译时插入文本。我在寻找这样的东西:

 string st = "1"; 
 fs << st.c_str() << 1; 

但是我不断收到运行时错误。它拒绝工作,我尝试使用 opencv 字符串类型、STL 字符串类型、char*,但仍然无法使其工作。

最佳答案

这是一个棘手的问题。查看 persistence.cpp 我发现抛出错误是因为在变量名称上检查了 cv_isalpha。这意味着您的变量名应该以字母开头!

尝试执行以下操作:

int main() {
    string oName; 
    oName = "a"; // Now, THIS will crash if you assign "number" characters, e.g "1"
    FileStorage fs("test.yml", FileStorage::WRITE);
    fs << oName.c_str() << 1 ;
    return 0;
}

这应该有效。

已编辑:只要以字母开头(例如“a1”),您就可以将数字放入“字符串”变量中,它也可以。

关于c++ - 是否可以在 opencv FileStorage 中使用字符串作为名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24381639/

相关文章:

c++ - 除非从方法本身内部调用方法不会更改值

c++ - 调用 MiniDumpWriteDump() 以捕获崩溃的最佳位置

python - 网络摄像头在 opencv-python 和 opencv-contrib-python 的 pip 版本中不起作用

c++ - 水平合并 cv::Mat

python-2.7 - 如何根据百分比在 opencv 和 python 中裁剪图像

opencv - VS2013 + Win7 中缺少 MSVCP140.dll

c++ - 如何在C++中获取网页的源代码?

c++ - 无法遍历 STL 集

c++ - 特征库中标准差的列初始化和计算

python - 从图像中提取特定文本关联值