繁体   English   中英

OpenCV Xamarin FindContours-如何使用层次结构

[英]Opencv xamarin findContours - how to use hierarchy

我有一个使用opencv的c ++程序,它的一部分是在图像中查找整个单词的轮廓。

我有这个工作的C ++代码

vector<cv::Vec4i> hierarchy;
cv::findContours(connected, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0));
for (int i = 0; i >= 0; i = hierarchy[i][0])
    {
        ...
    }

我正在尝试使用xamarin将此代码转换为C#,以使用opencv的java版本在Android上运行。 问题是我不知道如何在此处创建相同的for循环。

我所拥有的是:

JavaList<MatOfPoint> contours = new JavaList<MatOfPoint>();
Mat hierarchy = new Mat();
Imgproc.FindContours(connected, contours, hierarchy, Imgproc.RetrCcomp, Imgproc.ChainApproxSimple, new Point(0, 0));

我如何在这里写同样的for循环? 我使用2级轮廓线,因为我需要外部轮廓线,而不是孔。

万一有人需要这个答案,我在一段时间前就想出了,但没有时间发布。

for(int i = 0; i >= 0;)
    {
        ...
        double[] contourInfo = hierarchy.Get(0, i);
        i = (int)contourInfo[0]; // this gives next sibling
    }

在您了解此处的局限性之后,结果变得很容易: http ://docs.opencv.org/3.1.0/d9/d8b/tutorial_py_contours_hierarchy.html#gsc.tab=0

希望这对某人有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM