我不知道如何在 OpenCV 中有效地实现矩阵。
我有包含 0 和 1 元素的二进制 Mat nz(150,600)
。
我有带 double 值的 Mat mk(150,600)
。
我喜欢像在 Matlab 中那样实现
sk = mk(nz);
该命令仅将mk元素中nz为1的位置的那些元素复制到sk。然后将sk制成行矩阵。 我如何在 OpenCV 中有效地实现它以提高速度和内存?
最佳答案
你应该看看 Mat::copyTo
和 Mat::clone
。
copyTo
将使用可选掩码进行复制,其中非零元素指示需要复制哪些矩阵元素。
mk.copyTo(sk, nz);
如果你真的想要一个行矩阵,那么调用 sk.reshape()
作为成员 sansuiso 已经建议。这个方法...
creates alternative matrix header for the same data, with different number of channels and/or different number of rows.
关于opencv - OpenCV 中的高效矩阵复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17669868/