我有一个类型为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++;
}
}
答案 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;
}
我相信你可以轻松调试。我很快就会尝试编译。