如何在Open CV java中复制1D int数组的元素到MxN Mat



我是新手打开CV和android。我想把一个1D整数数组的元素复制到一个Mat,这样Mat的第一行包含了1D数组的所有元素,Mat的第二行应该包含下一个1D整型数组,以此类推。因此,如果有'M'个长度为'N'的1D整型数组,则Mat应该是M X N。我们可以使用。put(int row, int col, int[] data)来实现这一点。如果是,那又是怎么回事?put上的公开简历文档不是很清楚。http://docs.opencv.org/java/2.4.2/org/opencv/core/Mat.html

这是我的代码,

    int[] features;
    Mat trainingData = new Mat();
    features = FindFeatures(mRgba.width(), mRgba.height(), yuv, rgba);

在此之后,我需要从特征Int数组中填充我的训练数据,以便对于长度为'N'的'M'特征,我得到M X N的Mat。使用这个M X N Mat,我将能够训练SVM。

如果我理解你的问题正确,你可以使用put方法:http://docs.opencv.org/java/2.4.2/org/opencv/core/Mat.html#put(int,%20int,%20int[])

最后的方法是这样的:

public void fillMatrinx(Mat matrix, int col, int row, int[][] data)
{
    for(int i = 0; i < row; i++)
    {
        int n = 0;
        for(int j = 0; j < col; j++)
        {
            matrix.put(i,j,data[i][n]);
            n++;
        }
    }
}

相关内容

  • 没有找到相关文章

最新更新