所以我终于明白了这个问题。线路
Mat.zeros(srcOriginal.rows(), srcOriginal.cols(), CvType.CV_32F)
说要创建一个垫子srcOriginal.rows()
by srcOriginal.cols()
pixels.
现在您必须循环遍历行和列以设置它们的 RGB 颜色值。换句话说,您必须设置第 0 行的所有列值,然后设置第 1 行的所有列值,依此类推。
所以你必须循环两次,一次循环,一次循环。您可以使用两个 for 循环。我将把它们提取到一个内联函数中,以便以后更容易管理。
// function declaration toplevel / or in class
inline fun loopThrough(rows: Int, cols: Int, block: (Int, Int) -> Unit) {
for(r in 0 until rows) {
for (c in 0 until cols) block(r, c)
}
}
// code here
val rows = srcOriginal.rows()
val cols = srcOriginal.cols()
val markers = Mat.zeros(rows, cols, CvType.CV_32F)
loopThrough(rows, cols) { row, col ->
markers.put(row, col, intArrayOf(0,0,255))
}