【问题标题】:Error to create matrix with zeros in kotlin using Mat.zeros使用 Mat.zeros 在 kotlin 中创建零矩阵时出错
【发布时间】:2020-05-29 15:51:46
【问题描述】:

我正在使用 opencv 开发应用程序。我正在上传一个图像并分配一个与原始图像大小相同的新矩阵,但是在这个矩阵中我需要用 0 填充所有行和列。但是,函数 Mat.zeros 没有在我的矩阵中分配 0我的输出充满了值:[D @ 13a5b9d, [D @ f3978b1, [D @ 30c17d0 ... 哦,我需要它是 Mat () 类型的矩阵,因为我将使用 opencv。有人可以帮我解决这个错误吗 代码:

val srcOriginal = Imgcodecs.imread(currentPhotoPath)

val markers = Mat.zeros(srcOriginal.rows(), srcOriginal.cols(), CvType.CV_32S)

for(x in 0..markers.rows()) {
   for(y in 0..markers.cols()) {
      Log.i("teste", markers[x,y])
  }
}

预期输出:

[[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
...
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]]

输出:

【问题讨论】:

    标签: java android opencv kotlin mobile


    【解决方案1】:

    您的代码实际上创建了一个填充了正确值的矩阵。问题是,markers[x,y] 返回一个 DoubleArray 类型的值,而不是 Double,因此您看不到实际内容。如果您使用以下行打印值,您将看到矩阵中有零:

    Log.i("teste", markers[x,y].contentToString())
    
    // Alternative using the Java Arrays class
    Log.i("teste", Arrays.toString(markers[x,y]))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 2020-07-09
      • 1970-01-01
      相关资源
      最近更新 更多