【问题标题】:Print opencv matrix content in Java用Java打印opencv矩阵内容
【发布时间】:2013-05-13 17:31:55
【问题描述】:

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

任何帮助我如何获得矩阵内容?!

【问题讨论】:

    标签: java android opencv mat


    【解决方案1】:

    代码:

        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]

    【讨论】:

      【解决方案2】:

      它与[[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);
      

      【讨论】:

      • 有时 dump() 在与 Log 一起使用时会崩溃。任何想法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 1970-01-01
      相关资源
      最近更新 更多