将浮点数据复制到Mat

时间:2013-05-11 07:14:42

标签: opencv image-processing

我是opencv的新手,我正在尝试从文本文件中读取像素值。我正在阅读并将其存储在浮点矢量中。

vector<float> iArray;

我想从该浮点数据创建一个图像。我必须将浮动数据复制到Mat。

我这样做,似乎不起作用。

Mat image(640, 480, CV_32FC3);
for (int i = 0; i < iArray.size(); ++i)
    image = iArray.at(i);

就像其他数据类型一样,我认为将值复制到图像就足够了,但事实并非如此。我确信我错了。请帮我。谢谢你。

1 个答案:

答案 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;
    }
}