我正在使用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]]
输出:
最佳答案
您的代码实际上创建了一个填充有正确值的矩阵。事实是,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/