opencv - OpenCV 中的高效矩阵复制

标签 opencv

我不知道如何在 OpenCV 中有效地实现矩阵。 我有包含 0 和 1 元素的二进制 Mat nz(150,600)。 我有带 double 值的 Mat mk(150,600)。 我喜欢像在 Matlab 中那样实现

sk = mk(nz);

该命令仅将mk元素中nz为1的位置的那些元素复制到sk。然后将sk制成行矩阵。 我如何在 OpenCV 中有效地实现它以提高速度和内存?

最佳答案

你应该看看 Mat::copyToMat::clonecopyTo 将使用可选掩码进行复制,其中非零元素指示需要复制哪些矩阵元素。

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/

相关文章:

android - 静态图像中的颜色检测 - OpenCV Android

opencv - 如何从gpuHog获取描述符?

c++ - Opencv轮廓错误

java - 在Java中使用OpenCV 2.4.10对jpg图片应用sobel过滤器

matlab - 估计Matlab或openCV中棋盘格点的转换

qt - cv::Mat 到 QImage 的转换

c++ - 基于 OpenCV 标识识别的 ICPR 2010 文章

python - 在 tensorflow 中使用 gabor 过滤器,或任何其他过滤器而不是默认过滤器

python - 如何使用 OpenCV 平滑并变薄这些非常粗糙的图像?

opencv - 关于Motion Pipeline结构的问题