我有一个名为 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 。或使用 []
运算符。
关于c++ - openCV:将 Mat 保存到 vector<vector<int>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21351126/