我有一个名为myImage的cv :: Mat,我想保存到std :: vector>名为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的两倍,但它们应该是相同的,不应该是它们吗?
请告诉我我做错了什么。
答案 0 :(得分:3)
根据c++ reference调用push_back
将元素附加到向量,以便从末尾增加大小
因此您的尺寸至少为2*cols
。你应该初始化一个空的向量。或使用[]
运算符。