将一块矩阵复制到OPENCV中的另一个矩阵块中

时间:2013-01-02 15:43:19

标签: c++ visual-c++ opencv computer-vision

我有一个矩阵A,$ 100x100 $元素..我有另一个矩阵B,$ 50x50 $元素..

我想将一个元素块复制到A,例如

A(Range(10,30),Range(10,30))  = B (Range(5,25),Range(5,25));

程序正在编译和执行,但不会复制值。对此有何解决方案?

1 个答案:

答案 0 :(得分:3)

cv::Mat A;
cv::Mat B;
cv::Mat C = A(cv::Range(10,30),cv::Range(10,30));
B (cv::Range(5,25),cv::Range(5,25)).copyTo(C);

我想你的代码中发生的事情是你的函数调用A返回一个Mat头,然后将其设置为等于B返回的Mat头。默认情况下,OpenCV不复制cv :: Mat数据,你必须明确地做。