2016-12-28 5 views
3

Ich will auch eine Kontur in EmguCV 3.1.0.2504 ziehen, aber ich erhalte Fehler: "OpenCV: i. < 0 .Children nicht ausgewertet werden konnte"Zeichnen Sie eine Kontur in emgucv 3.1

IInputArrayOfArrays biggestCnt = GetBiggestCountour(BinaryImage); 
Image<Gray, byte> justCountor = new Image<Gray, byte>(384, 284, new Gray(255)); 
CvInvoke.DrawContours(justCountor, biggestCnt, -1, new MCvScalar(255, 0, 0)); 

enter image description here

+0

Normalerweise sehe ich diesen Fehler, wenn ich eine Liste habe, die nicht zu irgendwas greifbarem ausgewertet werden kann. Was macht GetBiggestCountour()? Kannst du das auch posten? – Woot

+0

@Woot GetBiggestCountour() gibt die größte Kontur des Bildes zurück. Ich zeigte die Ausgabe im Bild. –

Antwort

1

ich ändern Sie die Zeile:

CvInvoke.DrawContours(justCountor, biggestCnt, -1, new MCvScalar(255, 0, 0)); 

zu

justCountor.Draw(biggestCnt.ToArray(), new Gray(0), 1); 

und Problem gelöst.

+0

Dies scheint ein systemisches Problem zu sein .... es gibt viele Methoden, die seltsame Fehler zu verursachen scheinen, wenn Eingaben den Anforderungen entsprechen. –

Verwandte Themen