Print opencv matrix content in Java
Asked Answered
G

2

10

I have openCV matrix in Java and I would like to print out the content of it.I tried the toString() function as follows descriptor.toString() so I could achieve this form

"[[1,2,3,4],[4,5,6,7],[7,8,9,10]]"

where each array is the ith row in the matrix but I got the following result. I tried to remove the toString but still the same problem.

Mat [ 3*4*CV_8UC1, isCont=true, isSubmat=false, nativeObj=0x5dc93a48, dataAddr=0x5d5d35f0]

Where 3 is the number of rows and 4 is the number of columns.

Any help how can I get the matrix content?!

Greenock answered 18/5, 2013 at 18:53 Comment(0)
M
12

Code:

    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());

Output:
Printing the matrix dump
[1, 2, 3, 4;
4, 5, 6, 7;
7, 8, 9, 10]

Mainmast answered 19/4, 2015 at 5:18 Comment(0)
L
7

It's not exactly as [[1,2,3,4],[4,5,6,7],[7,8,9,10]] but it works:

Mat freqs = Mat.zeros(10, 10, CvType.CV_32F);

// do math...

String dump = freqs.dump();
Log.d(TAG, dump);
Loquacity answered 30/7, 2013 at 4:16 Comment(1)
Sometimes dump() is crashing when used with Log. Any ideas.Madalena

© 2022 - 2024 — McMap. All rights reserved.