QTextStream 存Mat 到CSV
时间: 2024-01-21 13:02:12 浏览: 21
可以使用QTextStream将Mat数据存储到CSV文件中。下面是一个示例代码:
```cpp
#include <QCoreApplication>
#include <QTextStream>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 读取图像
Mat image = imread("test.jpg", IMREAD_GRAYSCALE);
// 创建CSV文件
QFile file("output.csv");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
qDebug() << "Failed to open file";
return -1;
}
// 创建文本流
QTextStream stream(&file);
// 写入Mat数据
for (int i = 0; i < image.rows; i++)
{
for (int j = 0; j < image.cols; j++)
{
stream << image.at<uchar>(i, j) << ",";
}
stream << endl;
}
// 关闭文件
file.close();
return a.exec();
}
```
在这个例子中,我们首先使用OpenCV读取了一张灰度图像。然后,我们创建了一个名为“output.csv”的CSV文件,并使用QTextStream将Mat数据写入该文件。对于每个像素,我们将其值写入文件,以逗号分隔。在每行的末尾,我们使用endl将光标移动到下一行。最后,我们关闭了文件并退出程序。
请注意,这只是一个简单的示例代码,您可能需要根据您的实际需求进行修改。例如,您可能需要添加一些头信息,以便其他程序可以正确识别CSV文件。