我有一个名为myImage的cv::Mat,我想保存到一个名为savedVec的std::vector>中。这是我编写的代码:
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的两倍,但是由于它们应该相同,不是吗?请告诉我我做错了。
最佳答案
根据c++ reference的调用,push_back
将元素追加到 vector ,因此从头开始增加大小
因此您的大小至少为2*cols
。您应该初始化一个空 vector 。或使用[]
运算符。