使用OpenCV随机播放图像矩阵行

时间:2017-05-15 11:41:08

标签: java opencv opencv3.0

我有一个类型为Mat“Features”矩阵,有20行和一列,我已在其中插入了值。

现在我想改组矩阵行。是否有任何方法可以改变行或a guide on how to do this in Java

int rows = 20;
int cols = 1;
int index = 0;
Mat Features = new Mat(rows, cols, CvType.CV_64F);

for (int i = 0; i < rows; i++) {
    if (i < 10)
        Features.put(i, 0, responseA[i]);
    if (i >= 10) {
        Features.put(i, 0, responseB[index]);
        index++;
    }
}

1 个答案:

答案 0 :(得分:0)

不完全确定这是否编译,但我确实将C ++代码移植到Java。

import org.opencv.core.Core; // randShuffle is located here.

public static Mat shuffleRows(Mat matrix) {
    List<Integer> seeds = new ArrayList<Integer>();
    for (int cont = 0; cont < matrix.rows(); cont++) {
        seeds.add(cont);
    }

    Core.randShuffle(seeds);

    Mat output = new Mat();
    for (int cont = 0; cont < matrix.rows(); cont++) {
        output.push_back(matrix.row(seeds.get(cont)));
    }
    return output;
}

我相信你可以轻松调试。我很快就会尝试编译。