选择一个 Mat 的子集并复制它们以在 C++/Opencv 中创建一个新的 mat
Posted
技术标签:
【中文标题】选择一个 Mat 的子集并复制它们以在 C++/Opencv 中创建一个新的 mat【英文标题】:Select a subset of a Mat and copy them to create a new mat in C++/Opencv 【发布时间】:2013-07-17 04:22:26 【问题描述】:在 C++/opencv 中,如何选择大 Mat 的子集并复制它们以创建新 Mat?我知道如何使用 copyto、colrange、rowrange 等,但不知道如何将它们组合在一起以开发出体面和高效的代码。谢谢!
【问题讨论】:
看看Mat::clone() 【参考方案1】:您可以为此使用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);
【讨论】:
以上是关于选择一个 Mat 的子集并复制它们以在 C++/Opencv 中创建一个新的 mat的主要内容,如果未能解决你的问题,请参考以下文章
c ++:选择一个std :: vector的子集,基于预定义的元素索引
如何在不同线程的 C++/CLI 中将图像数据从 BitmapSource (WPF) 复制到 cv::Mat (OpenCV)?