OpenCV / C ++:将Mat中的行/列复制到另一个?

时间:2011-07-12 20:37:57

标签: c++ opencv

我知道我可以通过自己复制每个元素来做到这一点,但是有一种方法可以帮我吗?我试过了mat2.copyTo(mat1.row(0)),但这不起作用。

2 个答案:

答案 0 :(得分:27)

尝试

Mat mat1row = mat1.row(0);
mat2.copyTo(mat1row);

(假设mat2与目标行的大小相同)。

这应该做的工作,更清楚。

编辑:这更短,并由官方文档推荐:

A.row(j).copyTo(A.row(i));

官方文档中有关此内容的更多详细信息:http://docs.opencv.org/modules/core/doc/basic_structures.html#Mat%20Mat%3a%3arow%28int%20y%29%20const

答案 1 :(得分:9)

尝试

destMat.row(i) = (sourceMat.row(i) + 0);

它不是很漂亮,但它完成了工作。另请参阅 this。阅读关于Mat :: row

的评论