我想将数据从 cv::Mat 复制到 std::vector。我显然可以遍历整个 Mat 并一个一个地复制每个值,但我希望可能有更简单的方法使用 copyTo、克隆或某种指针操作。
有没有人对这个问题有任何见解?
谢谢
最佳答案
假设您的 Mat 是 CV_8UC1,您可以执行以下操作。
cv::Mat mat(nrows,ncols,CV_8UC1);
...
std::vector<unsigned char> vec;
vec.assign(mat.data,mat.data+nrows*ncols);
对于具有不同像素类型的多 channel 图像,我认为您可以轻松地概括上面的代码。
关于opencv - 将 Cv::Mat 的数据存储在 std::vector 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12946494/