java - 使用Mat.zeros在Kotlin中创建具有零的矩阵时出错

标签 java android opencv kotlin mobile

我正在使用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]]

输出:

enter image description here

最佳答案

您的代码实际上创建了一个填充有正确值的矩阵。事实是,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]))

关于java - 使用Mat.zeros在Kotlin中创建具有零的矩阵时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62089894/

相关文章:

编译时Android X库抛出错误

python - 使用Python通过矢量场进行图像变形

python - 根据蒙版将 2 张图像加在一起

java - 如何使用 Java 解压包含不同文件格式的 zip 文件夹

javascript - 在 Javascript 中加密以匹配 Java

java - 日历 DAY_OF_WEEK 返回错误的日期 - 始终是星期六

android - 如何使用 retrofit 在 android 中使用 xml 解析

python - 纯白色对颜色直方图的影响

java - {"error":"unsupported_grant_type","error_description":"grant type not supported"} 销售队伍 Java

java - 简单的Java:如何在后台创建静音和取消静音按钮?