c++ - 选择一个垫子的子集并复制它们以在 C++/Opencv 中创建一个新垫子

标签 c++ opencv matrix mat

在 C++/opencv 中,如何选择一个大 Mat 的子集并复制它们以创建一个新的 Mat?我知道如何使用 copyto、colrange、rowrange 等,但不知道如何将它们组合在一起以开发出像样的高效代码。谢谢!

最佳答案

您可以使用 copyTo()为此目的:

//copy a sub matrix of X to Y with starting coodinate (startX,startY)
// and dimension (cols,rows)
cv::Mat tmp = X(cv::Rect(startX,startY,cols,rows));
cv::Mat Y;
tmp.copyTo(Y);

或直接:

cv::Mat Y;
X(cv::Rect(startX,startY,cols,rows)).copyTo(Y);

关于c++ - 选择一个垫子的子集并复制它们以在 C++/Opencv 中创建一个新垫子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17691079/

相关文章:

c++ - Boost Graph 算法 - 添加约束

c++ - 调试断言错误 - OpenCV

c++ - OpenCV,XCode 中的链接错误,体系结构 x86_64 的 undefined symbol : "_cvHaarDetectObjects", 从 : _main in main. o 引用

c++ - 如何使用 C++ 模板化图形类中的 vector 创建邻接矩阵?

arrays - 如何在 MATLAB 中编码 'all combination'?

c++ - "A is nested class in B"是可传递的关系吗?

c++ - clone_ptr 问题,我需要使用库的函数而不是 new 创建一个复制对象

c++ - 确定动态内存分配中 char 指针的最大容量

opencv - 食品包装上的错误检测 - 使用 Opencv

c++ - 用 C++ 类替换 Numerical Recipe 的 dmatrix