2016-05-09 9 views
1

Ich habe ein funktionierendes C++ Programm mit opencv, und ein Teil davon ist die Konturen von ganzen Wörtern in einem Bild zu finden. mit Xamarin zulaufen auf Android mit der Java-Version von opencvOpencv Xamarin findContours - wie man Hierarchie verwendet

Ich habe diese Arbeit C++ Code

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]) 
    { 
     ... 
    } 

Ich versuche, diesen Code in C# zu übersetzen. Das Problem ist, dass ich nicht weiß, wie man dort dieselbe for-Schleife erstellt.

, was ich habe ist:

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

wie schreibe ich gleich hier für die Schleife? Ich verwende eine 2-Ebenen-Hierarchie von Konturen, weil ich die äußeren Konturen brauche, nicht die Löcher.

+0

http://docs.opencv.org/3.1.0/d9/d8b/tutorial_py_contours_hierarchy.html#gsc.tab=0 Dies erklärt die Hierarchie und warum diese for-Schleife so funktioniert –

Antwort

1

Falls jemand eine Antwort benötigt, habe ich es vor einiger Zeit herausgefunden, aber ich hatte keine Zeit es zu posten.

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

stellte sich heraus, ganz einfach sein, nachdem Sie die esplaination hier verstehen: http://docs.opencv.org/3.1.0/d9/d8b/tutorial_py_contours_hierarchy.html#gsc.tab=0

Hoffnung dies jemand hilft.

Verwandte Themen