在OpenCV中进行高效的矩阵复制

bat*_*man 3 opencv

我不知道如何在OpenCV中有效地实现矩阵实现.我有二进制Mat nz(150,600)0和1元素.我有mk(150,600)双重值的Mat .我喜欢在Matlab中实现

sk = mk(nz);
Run Code Online (Sandbox Code Playgroud)

该命令将mk复制到sk仅用于nz具有的位置处的mk元素的那些元素.然后使sk成为行矩阵.如何在OpenCV中有效地实现速度和内存?

bka*_*sbk 8

你应该看看Mat::copyToMat::clone. copyTo将使用可选掩码制作副本,其中非零元素指示需要复制哪些矩阵元素.

mk.copyTo(sk, nz);
Run Code Online (Sandbox Code Playgroud)

如果你真的想要一个行矩阵,那就打电话给sk.reshape()成员sansuiso已经建议了.这个方法......

为相同数据创建替代矩阵标题,具有不同数量的通道和/或不同数量的行.