【发布时间】:2013-07-17 04:22:26
【问题描述】:
在 C++/opencv 中,如何选择大 Mat 的子集并复制它们以创建新 Mat?我知道如何使用 copyto、colrange、rowrange 等,但不知道如何将它们组合在一起以开发出体面和高效的代码。谢谢!
【问题讨论】:
在 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);
【讨论】: