Итак, я наконец понял проблему. Строка
Mat.zeros(srcOriginal.rows(), srcOriginal.cols(), CvType.CV_32F)
говорит о создании Mat размером srcOriginal.rows()
на srcOriginal.cols()
пикселей.
Теперь вам нужно l oop через строки и столбцы, чтобы установить их значения цвета в RGB. Другими словами, вы должны установить все значения столбцов для 0-й строки, затем все значения столбцов для 1-й строки и т. Д.
Таким образом, вам нужно l oop дважды, один для строки и один для столбец. Вы можете использовать две петли 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))
}