3

我想将大小为 100x100 的 mat 对象 m2 转换为双行数组,例如:

double[] matrizvector=new double[10000];

int mm=0;
for (int nr=0; nr<100; nr++){ 
    for (int nc=0; nc<100; nc++){ 
        matrizvector[mm]=m2.get(nr,nc)[0];
        mm=mm+1;
    }
}

有没有其他方法可以做到这一点,例如使用重塑?

4

1 回答 1

2

您可以结合使用reshapeconvertTo函数:

Mat reshaped = m2.reshape(1,1);
Mat reshapedInDouble;
reshaped.convertTo(reshapedInDouble, CV_64F);

double* matrixzvector = (double*)(reshapedInDouble.data);

如果您的原始矩阵已经是双精度矩阵,则不需要使用 convertTo。

于 2012-12-03T15:09:56.173 回答