3

我有一个包含 $100x100$ 元素的矩阵 A.. 我还有另一个包含 $50x50$ 元素的矩阵 B..

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

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

程序正在编译和执行,但值没有被复制。有什么解决办法吗?

4

1 回答 1

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 数据,您必须明确地进行.

于 2013-01-02T18:32:06.027 回答