Nullpointer, когда все в порядке, kotlin
Итак, я создаю приложение для обработки изображений с помощью kotlin, и, как видно из названия, у меня нулевой указатель, когда не было предположения, что это произойдет, как я покажу на следующем рисунке.
и код
fun medianFilter1(noisy_image:String, final_image:String, window_side_size:Int) {
val path = "files/$noisy_image"
val finalPath = "files/$final_image"
val src: Mat = imread(path)
val window = window_side_size
val edgeX = Math.floor(window / 2.0).roundToInt()
val edgeY = Math.floor(window / 2.0).roundToInt()
val picWidth = src.width()
val picHeight = src.height()
var counter = 1
val threadNumber = 4
runBlocking {
var in_height = picHeight / threadNumber
for (m in threadNumber downTo 1) {
println(in_height*(counter-1))
println(in_height*counter)
launch(newSingleThreadContext("MyOwnThread")) {
for (y in in_height*(counter-1) until in_height*counter) {
for (x in edgeY until picWidth) {
var Red = ArrayList<Double>()
var Green = ArrayList<Double>()
var Blue = ArrayList<Double>()
var i = 0
for (fx in 0 until window) {
for (fy in 0 until window) {
Red.add(src.get(y + fy,x + fx )[0])
Green.add(src.get(y + fy ,x + fx )[1])
Blue.add(src.get( y + fy ,x + fx )[2])
i += 1
}
}
Red = insertionSort(Red)
Blue = insertionSort(Blue)
Green = insertionSort(Green)
src.put(x, y, Red.get(Red.count() / 2), Green.get(Green.count() / 2), Blue.get(Blue.count() / 2))
}
}
counter += 1
imwrite(finalPath, src)
}
}
}
}