Select a subset of a Mat and copy them to create a new mat in C++/Opencv

限于喜欢 提交于 2019-12-02 04:15:31

问题


In C++/opencv, how can I select a subset of a big Mat and copy them to create a new Mat? I know how to use copyto, colrange, rowrange, etc., but don't know to combine them together to develop a decent and efficient code. Thanks!


回答1:


You can use copyTo() for this purpose:

//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);

or directly:

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


来源:https://stackoverflow.com/questions/17691079/select-a-subset-of-a-mat-and-copy-them-to-create-a-new-mat-in-c-opencv

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!