【问题标题】:Opencv xamarin findContours - how to use hierarchyOpencv xamarin findContours - 如何使用层次结构
【发布时间】:2016-09-04 06:34:50
【问题描述】:

我有一个使用 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#,以便使用 java 版本的 opencv 在 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 级轮廓层次结构,因为我需要外部轮廓,而不是孔。

【问题讨论】:

标签: java c# android opencv xamarin


【解决方案1】:

如果有人需要这个问题的答案,我前段时间就想出来了,但没有时间发布。

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

希望这对某人有所帮助。

【讨论】:

    猜你喜欢
    • 2012-01-17
    • 2019-03-10
    • 2014-05-16
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 2017-05-24
    相关资源
    最近更新 更多