Как устранить неразрешенную ошибку ссылки, используя OpenCV4 с Android Studio (kotlin) - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь преобразовать код Java в Kotlin. На этой странице показан оригинальный код Java (Edit: @ OpenCV4Android) android java opencv 2.4 выпуклый корпус выпуклый дефект

private fun getConvexHull(contours:ArrayList<MatOfPoint>) {

 var hullInt = MatOfInt()
 var hullPointList : List<org.opencv.core.Point>? = null
 var hullPointMat : MatOfPoint? = null
 var hullPoints = ArrayList<MatOfPoint>()
 var Image: Bitmap = textureView.getBitmap()
 var mROI = Mat()

 for(k in 0..contours.size-1){
     Imgproc.convexHull(contours.get(k), hullInt)
     for(j in 0..hullInt.toList().size-1 ){

         hullPointList.add(  ////// this line
             contours.get(k).toList().get(
                 hullInt.toList().get(j)))

     }
     hullPointMat?.fromList(hullPointList)
     hullPoints.add(hullPointMat!!)
 }

 Utils.bitmapToMat(Image,mROI)
 Imgproc.drawContours( 
     mROI,hullPoints,-1,Scalar(255.0,0.0,0.0,255.0),1)

}

В этом коде произошла ошибка «неразрешенная ссылка: добавить» в строке «hullPointList.add». У вас есть какие-либо решения, чтобы удалить эту ошибку? Спасибо.

1 Ответ

0 голосов
/ 03 июня 2019

Я решил проблему самостоятельно.

private fun getConvexHull(contours:ArrayList<MatOfPoint>):ArrayList<MatOfPoint>
{
    val hullInt:MatOfInt = MatOfInt()
    val hullPointList = mutableListOf<org.opencv.core.Point>() // changed
    val hullPointMat = MatOfPoint()  // changed
    val hullPoints = ArrayList<MatOfPoint>()
    var Image: Bitmap = textureView.getBitmap()
    var mROI = Mat()

    for(eachCont in contours){
        Imgproc.convexHull(eachCont, hullInt)
        for (eachHull in hullInt.toList())
            hullPointList.add(eachCont.toList().get(eachHull))
        hullPointMat.fromList(hullPointList)
        hullPoints.add(hullPointMat)
    }
    Utils.bitmapToMat(Image,mROI)
    Imgproc.drawContours(mROI,hullPoints,-1,Scalar(255.0,0.0,0.0,255.0),1)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...