10

我在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 是列数。

任何帮助我怎样才能获得矩阵内容?!

4

2 回答 2

10

代码:

    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]

于 2015-04-19T05:18:07.350 回答
5

它不完全一样,[[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);
于 2013-07-30T04:16:25.710 回答