我是opencv的新手,我正在尝试从文本文件中读取像素值。我正在阅读并将其存储在浮点矢量中。
vector<float> iArray;
我想从该浮点数据创建一个图像。我必须将浮动数据复制到Mat。
我这样做,似乎不起作用。
Mat image(640, 480, CV_32FC3);
for (int i = 0; i < iArray.size(); ++i)
image = iArray.at(i);
就像其他数据类型一样,我认为将值复制到图像就足够了,但事实并非如此。我确信我错了。请帮我。谢谢你。
答案 0 :(得分:0)
似乎你在没有阅读文档的情况下尝试做一些错误的方法。
为什么用3个频道创建Mat
?您的输入图像有3个通道吗?您似乎必须执行以下操作:
Mat image(Size(640,480) CV_32FC1);
int k=0;
for (int i = 0; i < image.rows; ++i)
{
for (int j = 0; j < image.cols; ++j)
{
image.at<float>(i,j) = iArray[k];
++k;
}
}