qt使用opencv将二维float数据转为bin格式存入mat文件中
时间: 2024-05-04 12:19:50 浏览: 96
你可以使用OpenCV提供的FileStorage类,将二维float数组转换为Mat并保存为二进制格式的文件。以下是一个示例代码:
```c++
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
int main()
{
// 二维float数组
float data[3][3] = {{1.1, 2.2, 3.3}, {4.4, 5.5, 6.6}, {7.7, 8.8, 9.9}};
// 将二维数组转为Mat
cv::Mat mat(3, 3, CV_32FC1, data);
// 创建FileStorage对象
cv::FileStorage fs("matfile.bin", cv::FileStorage::WRITE);
// 将Mat写入文件
fs << "mat" << mat;
// 释放FileStorage对象
fs.release();
return 0;
}
```
在上面的示例中,我们首先定义了一个3x3的二维float数组,然后将其转换为Mat对象。接着创建一个FileStorage对象,指定写入文件的名称和格式为二进制。最后将Mat对象写入文件,并释放FileStorage对象。
值得注意的是,我们在创建Mat对象时指定了数据类型为CV_32FC1,即单通道32位浮点数,因为我们的数据是二维float数组。如果你的数据类型不同,需要相应地修改这个参数。
阅读全文