openCV:将Mat保存到vector <vector <int>&gt; </vector <int>

时间:2014-01-25 13:25:35

标签: c++ opencv vector save mat

我有一个名为myImage的cv :: Mat,我想保存到std :: vector&gt;名为savedVec。这是我写的代码:

for (int i = 0; i < myImage.rows; ++i)
{
    std::vector<int> row(myImage.cols);
    for (int j = 0; j < myImage.cols; ++j)
    {
        row.push_back(Play::getInstance()->getFinder()->getImage().at<uchar>(i, j));
    }
    savedVec.push_back(row);
}

我现在的问题是某种方式savedVec[0].size()产生的尺寸是myImage.cols的两倍,但它们应该是相同的,不应该是它们吗? 请告诉我我做错了什么。

1 个答案:

答案 0 :(得分:3)

根据c++ reference调用push_back将元素附加到向量,以便从末尾增加大小

因此您的尺寸至少为2*cols。你应该初始化一个空的向量。或使用[]运算符。