如何在Mat中选择一些特定的列?

时间:2017-07-01 10:42:33

标签: c++ opencv

Matlab中,如果我想要同时选择Mat的某些指定列,将它们复制到另一个Mat,我会写一个代码像这样:

mm = nn(:,[1 3]);

在OpenCV中如何做到这一点?

1 个答案:

答案 0 :(得分:3)

在一般情况下,没有OpenCV函数可以执行此操作。

如果所选列是连续的,则可以使用接受两个Mat的{​​{1}}构造函数:

Range

Mat mm = nn(Range::all(), Range(1, 4)).clone(); // range end is exclusive 将包含mm的第1,2,3列。

在一般情况下,您应该将每列复制到正确的位置。实际上没有办法“同时”,但在函数nn之外,你会同时获得行为。< / p>

selectColumns

请记住,在C ++中,索引是从0开始的,而在Matlab中,索引是从1开始的。