Java 如何从列表转换<;MatOfPoint>;到2楼?
我现在有一行代码Java 如何从列表转换<;MatOfPoint>;到2楼?,java,opencv,Java,Opencv,我现在有一行代码 列出轮廓=新向量() 我希望将其转换为MatOfPoint2f,以便对其调用以下函数: Imgproc.arcLength(等高线,真) 但是,我真的不知道如何将列表转换为MatOfPoint2f,这就是轮廓必须使用的弧长。有人能告诉我怎么做吗?看来你想要: List<MatOfPoint> contours; //already initialized somewhere in your code List<MatOfPoint2f> newCo
列出轮廓=新向量()代码>
我希望将其转换为MatOfPoint2f
,以便对其调用以下函数:
Imgproc.arcLength(等高线,真)代码>
但是,我真的不知道如何将列表
转换为MatOfPoint2f
,这就是轮廓
必须使用的弧长
。有人能告诉我怎么做吗?看来你想要:
List<MatOfPoint> contours; //already initialized somewhere in your code
List<MatOfPoint2f> newContours = new ArrayList<>();
for(MatOfPoint point : contours) {
MatOfPoint2f newPoint = new MatOfPoint2f(point.toArray());
newContours.add(newPoint);
}
列出等高线//已在代码中的某个地方初始化
List newContours=new ArrayList();
对于(点:等高线){
MatOfPoint2f newPoint=新的MatOfPoint2f(point.toArray());
添加(newPoint);
}
谢谢。我已经看过这个帖子了,但是我想知道如何将List
转换成MatOfPoint
。你能给我一些建议吗?我必须循环它还是什么?我假设您将有一个列表
,因此您必须循环每个MatOfPoint
,以创建适当的MatOfPoint2f
元素。不,它是列表
-不2f
。这有什么变化吗?你原来的问题是从List
到MatOfPoint2f
现在你说的是从MatOfPoint
列表到单个MatOfPoint
?谢谢。但是我得到了以下错误消息:“Imgproc类型中的方法arcLength(MatOfPoint2f,boolean)不适用于参数(List,boolean)”“我们可以用任何方式摆脱List
方面的东西吗?你把MatOfPoint2f
列表与单个MatOfPoint2f
混淆了。只需分别访问每个元素即可执行arcLength
操作