FileStorage opencv 加载.yml配置文件

在 OpenCV 中,您可以使用 FileStorage 类来加载和保存配置文件,包括 .yml.yaml 格式的文件。以下是如何使用 FileStorage 加载 .yml 文件的示例代码。

示例代码

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main() {
    // 创建 FileStorage 对象以读取 .yml 文件
    FileStorage fs("config.yml", FileStorage::READ); // 替换为您的文件名

    // 检查文件是否成功打开
    if (!fs.isOpened()) {
        cerr << "Failed to open file!" << endl;
        return -1;
    }

    // 读取数据,假设文件中有名为 "matrix" 的键
    Mat matrix;
    fs["matrix"] >> matrix; // 读取名为 "matrix" 的数据

    // 输出读取的矩阵
    cout << "Loaded matrix:\n" << matrix << endl;

    // 关闭文件
    fs.release();

    return 0;
}

代码解析

  1. 创建 FileStorage 对象

    • 使用 FileStorage fs("config.yml", FileStorage::READ); 创建一个 FileStorage 对象并打开指定的 .yml 文件。
  2. 检查文件是否打开

    • 使用 fs.isOpened() 检查文件是否成功打开。如果打开失败,输出错误信息并返回。
  3. 读取数据

    • 使用 fs["matrix"] >> matrix; 从文件中读取名为 matrix 的数据。确保 .yml 文件中有此键。
  4. 输出结果

    • 使用 cout 输出加载的矩阵。
  5. 关闭文件

    • 使用 fs.release() 关闭文件以释放资源。

注意事项

  • 确保 .yml 文件的路径正确。
  • 确保在文件中存在与读取键匹配的数据。
  • OpenCV 支持多种数据类型,您可以根据需要读取其他类型的数据(如 int, float, vector 等)。

示例 .yml 文件内容

为了使上述代码运行,您可以创建一个简单的 config.yml 文件,内容如下:

matrix: !!opencv-matrix
   rows: 2
   cols: 2
   dt: f
   data: [ 1, 2, 3, 4 ]

这个文件定义了一个 2x2 的浮点矩阵。

通过以上步骤,您可以成功加载 .yml 文件中的数据。

posted @   aisuanfa  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示