android java opencv 2.4 convexhull convexdefect

android java opencv 2.4 convexhull convexdefect,第1张

概述Open-CV 2.4 Android-Java: 我搜索了等高线(MatofPoint列表),如下所示: Imgproc.findContours(roi_mat, contours, hierarchy, cfg.retMode, cfg.apxMode); 然后是凸包(必须是MatofInt列表) for (int k=0; k < contours.size(); k++){ Open-CV 2.4 Android-Java:

我搜索了等高线(MatofPoint列表),如下所示:

imgproc.findContours(roi_mat,contours,hIErarchy,cfg.retMode,cfg.apxMode);

然后是凸包(必须是MatofInt列表)

for (int k=0; k < contours.size(); k++){     imgproc.convexHull(contours.get(k),hull.get(k));}

凸壳需要一个MatofInt,但是drawcontours想要一个MatofPoint ..那么该怎么办?

Thx提前..

编辑:@ OpenCV4AndroID

for (int k=0; k < contours.size(); k++){    imgproc.convexHull(contours.get(k),hullint);    for(int j=0; j < hullint.toList().size(); j++){        hullPointList.add(contours.get(k).toList().get(hullint.toList().get(j)));    }    hullPointMat.fromList(hullPointList);    hullPoints.add(hullPointMat);   }imgproc.drawContours( mROI,hullPoints,-1,new Scalar(255,255),1);
解决方法 看起来OpenCV Java API缺少另一个convexHull()签名:
convexHull(MatOfPoint points,MatOfPoint hull);

喜欢它可以用C调用.

虽然我们还没有添加它,但您需要手动创建MatOfPoint格式的外壳:

>使用MatOfPoint :: toArray()或MatOfPoint :: toList()来获取轮廓点>使用MatOfInt :: toArray()或MatOfInt :: toList()来获取船体的索引>创建一个新的Point []或List< Point>只有船体的分数>通过MatOfPoint :: fromArray()或MatOfPoint :: fromList()将其转换为MatOfPoint>调用Core.drawContours()

总结

以上是内存溢出为你收集整理的android java opencv 2.4 convexhull convexdefect全部内容,希望文章能够帮你解决android java opencv 2.4 convexhull convexdefect所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1135166.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存