qt使用opencv将二维float数据转为二进制字节流存入mat文件中
时间: 2024-05-06 09:18:47 浏览: 97
你可以使用OpenCV中的FileStorage类来将二维float数据转换为二进制字节流并存储到Mat文件中。下面是一个示例代码:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 创建二维float数据
float data[2][3] = {{1.1, 2.2, 3.3}, {4.4, 5.5, 6.6}};
// 创建Mat对象
Mat mat(Size(3, 2), CV_32FC1, &data);
// 创建FileStorage对象
FileStorage fs("output.yml", FileStorage::WRITE);
// 将Mat对象写入FileStorage对象
fs << "data" << mat;
// 关闭FileStorage对象
fs.release();
return 0;
}
```
在上面的示例代码中,我们首先创建了一个二维float数据,然后使用Mat对象将其包装起来。接着,我们创建了一个FileStorage对象,将Mat对象写入FileStorage对象,并将FileStorage对象保存到名为“output.yml”的文件中。最后,我们关闭了FileStorage对象。
当我们查看“output.yml”文件时,可以看到以下内容:
```
%YAML:1.0
data: !!opencv-matrix
rows: 2
cols: 3
dt: f
data: [ 1.1, 2.2, 3.3, 4.4, 5.5, 6.6 ]
```
这就是我们刚刚写入的Mat对象的二进制字节流。
阅读全文