选择Mat的子集并复制它们以在C++/Opencv中创建新的mat

HMK*_*HMK 2 c++ opencv matrix mat

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

fat*_*ihk 9

您可以使用 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);
Run Code Online (Sandbox Code Playgroud)

或直接:

cv::Mat Y;
X(cv::Rect(startX,startY,cols,rows)).copyTo(Y);
Run Code Online (Sandbox Code Playgroud)