OpenCV - 直接将矩阵乘法结果复制到另一个矩阵的子集

时间:2013-10-10 08:50:48

标签: c++ opencv matrix subset memory-efficient

我尝试直接将矩阵乘法结果复制到另一个矩阵的子集:

cv::Mat a,b,c;
//fill matrices a and b and set matrix c to correct size
cv::Mat ab=a*b;
ab.copyTo(c(cv::Rect(0,0,3,3)));

是不是可以直接将结果复制到矩阵c,例如(我知道这不起作用):

(a*b).copyTo(c(cv::Rect(0,0,3,3)));
//or 
c(cv::Rect(0,0,3,3)).setTo(a*b);

不是更有效率吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

cv::Mat subC = c(cv::Rect(0,0,3,3));
subC = a*b;

此处不复制。

或者更简洁:

c(cv::Rect(0,0,3,3)) = a*b;