2013-05-18 3 views
7

У меня есть матрица OpenCV в Java, и я хотел бы, чтобы распечатать содержимое it.I попробовал функцию ToString() следующим образом descriptor.toString(), так что я мог бы достичь эта формапечати содержимого OpenCV матрица Java

"[[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 - количество столбцов.

Любая помощь, как я могу получить содержимое матрицы ?!

ответ

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); 
+1

Иногда dump() сбой при использовании с Log. Есть идеи. –

7

Код:

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]

Смежные вопросы