我是新手打开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++;
}
}
}