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 报错踩坑 (解决)的主要内容,如果未能解决你的问题,请参考以下文章

Android OpenCV VideoCapture::retrieve(&mat) 导致致命信号 11

android:如何将 int[] 转换为 OpenCV Mat c++?

将 c++ opencv IplImage imageData 和 widthStep 转换为 android opencv Mat

opencv中Mat数据怎么保存为JPG格式的图片

Android将字节数组从Camera API转换为颜色Mat对象openCV

如何在 Android Opencv c++ 中获取 abs Mat?