如何在OpenCv中将Mat的一行复制到另一个Mat的列?

5

我有两个Mat:

A:
size(1,640)
B:
size(640,480)

我想将A复制到B的第一列,所以我使用 A.copyTo(B.col(0))。但是失败了。该怎么做?

请翻译以下与编程有关的内容,从英文到中文。仅返回翻译的文本:正确答案在此处:https://dev59.com/hn_aa4cB1Zd3GeqP5Zzp - Vit
1个回答

12

你走在正确的道路上了!Mat:col是要使用的匹配工具 :)

但要注意,仅仅将一个列分配给另一个列并不会像你期望的那样起作用,因为Mat:col只为您指定的矩阵列创建一个新的矩阵头,而没有真正的数据副本。

示例代码:

B.col( 0 ) = A.col( 0 ); // won't work as expected

A.col( 0 ).copyTo( B.col(0) ); // that's fine

这个问题不是关于“将一列分配给另一列”的。它是关于将一行分配给另一列的。 - Vit
@Vit 实际上它们很相似... A.col(0).copyTo(B.row(0)); - MSharq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接