kotlin opencvでkmeans

fun main() {

val img = imread("yutaka.png", -1)
val channels = MatVector()
split(img, channels)
val alpha = channels[3]

val rgb_img = Mat()
cvtColor(img, rgb_img, COLOR_BGRA2BGR)

val samples = rgb_img.reshape(1, img.rows() * img.cols())
val samples32f = Mat()
samples.convertTo(samples32f, CV_32F)

val labels = Mat()
kmeans(samples32f, 5, labels, TermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 10, 1.0), 10, KMEANS_RANDOM_CENTERS)

val buffer = labels.createBuffer<IntBuffer>()
for (y in 0 until img.rows()) {
for (x in 0 until img.cols()) {
println(buffer[y * img.cols() + x])
}
}
}