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;
}
代码解析
-
创建
FileStorage对象:- 使用
FileStorage fs("config.yml", FileStorage::READ);创建一个FileStorage对象并打开指定的.yml文件。
- 使用
-
检查文件是否打开:
- 使用
fs.isOpened()检查文件是否成功打开。如果打开失败,输出错误信息并返回。
- 使用
-
读取数据:
- 使用
fs["matrix"] >> matrix;从文件中读取名为matrix的数据。确保.yml文件中有此键。
- 使用
-
输出结果:
- 使用
cout输出加载的矩阵。
- 使用
-
关闭文件:
- 使用
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 文件中的数据。

浙公网安备 33010602011771号