Android Kotlin opencv MatOfPoint 转 MatOfPoint2f 报错踩坑 (解决)

Posted HoD

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Kotlin opencv MatOfPoint 转 MatOfPoint2f 报错踩坑 (解决)相关的知识,希望对你有一定的参考价值。

val contours:MutableList<MatOfPoint> = ArrayList()
val contours2f:MutableList<MatOfPoint2f> = ArrayList()

for (point in contours){
    contours2f.add(MatOfPoint2f(point.toArray()))
}

// 无法通过编译, 传入参数类型不匹配

查看 opencv 中 MatOfPoint2f 的构造函数

<init>(vararg Point!) defined in org.opencv.core.MatOfPoint2f
<init>(Long) defined in org.opencv.core.MatOfPoint2f
<init>(Mat!) defined in org.opencv.core.MatOfPoint2f

 

发现(Point...a)被转为了(vararg Point!)

 

经过查资料后改为

val contours:MutableList<MatOfPoint> = ArrayList()
val contours2f:MutableList<MatOfPoint2f> = ArrayList()

for (point in contours){
    contours2f.add(MatOfPoint2f(*point.toArray()))  // 这里多了个*
}

 

IDE不再报错, 手上没有设备, 未测试.

以上是关于Android Kotlin opencv MatOfPoint 转 MatOfPoint2f 报错踩坑 (解决)的主要内容,如果未能解决你的问题,请参考以下文章