c++ - openCV:将 Mat 保存到 vector<vector<int>>

标签 c++ opencv vector save mat

我有一个名为 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/

相关文章:

c++ - 试图了解 OpenGL 中的像素和 GL_POINTS

C++整数除法

c++ - 如何将模板化类专门用于数据类型分类?

python - 如何绘制更大的边界框和仅裁剪边界框文本 Python Opencv

c - Visual Studio 2008 不对齐堆栈变量?

python - Opencv或Numpy-有效替换图像中的像素列表

c++ - 一个类的另一个类的 friend 的功能

c++ - 为什么 std::transform 不将 std::string vector 转换为 unsigned int vector ?

c++ - 在其赋值运算符方法中调用对象的析构函数

c++11 函数调用中的 vector 初始化