gpt4 book ai didi

opencv - 从Txt文件读取并转换为float mat opencv

转载 作者:行者123 更新时间:2023-12-02 17:14:25 30 4
gpt4 key购买 nike

我需要这方面的帮助。我正在从文本文件读取数据。它具有3列和100行。数据为(x,y,z)格式。我想将x和y合并为一个Mat数据,将Z合并为另一个。

对于Z,这很容易,我创建了它的浮点矩阵。我分别阅读x和y,此刻我将其存储为浮点 vector 。如下面的代码。

char buf[255];
float x, y;
float label;
vector<float> x_coord;
vector<float> y_coord;

Mat class_label(y_coord.size(), 1, CV_32FC1);

if(!inFile.eof())
{
while (inFile.good())
{
inFile.getline(buf, 255);
string line(buf);
istringstream iss(line);
iss >> x;
x_coord.push_back(x);
iss >> y;
x_coord.push_back(y);
y_coord.push_back(y);
iss>> label;
class_label.push_back(label);
}
inFile.close();
}

我如何结合x_coord和y_coord来创建 Mat training_data(y_coord.size(), 2, CV_32FC1, train_data );类型的Mat

即2列乘100行。我正在这样做,但是没有用
float train_data[10938][2];

for (int j = 0; j < 2; j++)
{
for (int i = 0; i < x_coord.size(); i++)
{
int index = j + i * x_coord.size();
train_data[i][j] = x_coord.at(index);
//train_data[i][1] = x_coord.at(i);
}
}

我真的被困在这里,请帮助我。

最佳答案

您可以直接填充Mat而无需辅助数组train_data

for (int j = 0; j < 2; j++)
{
for (int i = 0; i < x_coord.size(); i++)
{
int index = j + i * x_coord.size();
training_data.at<float>(i, j) = x_coord.at(index);
}
}

您也可以在读取文件时执行相同的操作。有关更多信息,请阅读 Mat::at() documentation

关于opencv - 从Txt文件读取并转换为float mat opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16956079/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com