我在Java中有openCV矩阵,我想打印出它的内容。我尝试了toString()函数,如下所示:descriptor.toString()所以我可以实现这种形式
"[[1,2,3,4],[4,5,6,7],[7,8,9,10]]"
其中每个数组是矩阵中的第i行,但我得到以下结果。我试图删除toString,但仍然是同样的问题。
Mat [ 3*4*CV_8UC1, isCont=true, isSubmat=false, nativeObj=0x5dc93a48, dataAddr=0x5d5d35f0]
其中3是行数,4是列数。
任何帮助我如何获得矩阵内容?!
答案 0 :(得分:9)
代码:
int[][] testArray = new int[][]{{1,2,3,4},{4,5,6,7},{7,8,9,10}};
Mat matArray = new Mat(3,4,CvType.CV_8UC1);
for(int row=0;row<3;row++){
for(int col=0;col<4;col++)
matArray.put(row, col, testArray[row][col]);
}
System.out.println("Printing the matrix dump");
System.out.println(matArray.dump());
输出:
打印矩阵转储
[1,2,3,4;
4,5,6,7;
7,8,9,10]
答案 1 :(得分:3)
它与[[1,2,3,4],[4,5,6,7],[7,8,9,10]]
完全不同,但它有效:
Mat freqs = Mat.zeros(10, 10, CvType.CV_32F);
// do math...
String dump = freqs.dump();
Log.d(TAG, dump);