我不知道如何在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中有效地实现速度和内存?
你应该看看Mat::copyTo和Mat::clone.
copyTo将使用可选掩码制作副本,其中非零元素指示需要复制哪些矩阵元素.
mk.copyTo(sk, nz);
Run Code Online (Sandbox Code Playgroud)
如果你真的想要一个行矩阵,那就打电话给sk.reshape()成员sansuiso已经建议了.这个方法......
为相同数据创建替代矩阵标题,具有不同数量的通道和/或不同数量的行.