opencv - 将 Cv::Mat 的数据存储在 std::vector 中

标签 opencv stdvector

我想将数据从 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/

相关文章:

python - cv2.imshow() 给出黑屏

c++ - 如何将多个数字插入 vector 的特定元素?

c++ - 当包含在另一个 vector 中时如何使用 vector 包装类?

c++ - 用 std::uniform_real_distribution<double> 初始化一个 N 大小的 std::vector

opencv - Opencv可以写flv格式吗?

opencv - OpenCV resize()导致新图像中的剪切

python - 检测红色和绿色圆圈

python - 在 POST 响应中发送 OpenCV 图像

c++ - 清空 vector 的特定元素

c++ - 如何将 vector<unsigned char> 转换为 int?