我正在尝试将 java 代码转换为 kotlin。原始java代码显示在该页面中(编辑:@OpenCV4Android) android java opencv 2.4 convexhull convexdefect
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”行中发生“未解析的引用:add”错误。您有任何解决方案来消除此错误吗? 谢谢。
最佳答案
我自己解决了这个问题。
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)
}
关于java - 如何使用 OpenCV4 和 Android Studio(kotlin) 删除 Unresolved reference 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56393622/