Verwendung der neuesten v2 von OpenCVSharp (2.4.10.201 ...), die ich in meinem Projekt mit dem NuGet-Manager installiert habe.OpenCVSharp 2: FloodFill ist kaputt und korrumpiert Ausgabemaske
Es scheint, dass die Floodfill-Funktion ein Speicher-Korruptions-Problem hat. Ich bin es auf das folgende Bild Anwendung:
während die erzeugte Maske die gleiche Korruption Muster folgt:
Der Code, den ich verwenden ist:
filledArea = new CvMat(hue.Rows + 2, hue.Cols + 2, MatrixType.U8C1);
Cv.FloodFill(hue, hintPos, new CvScalar(255,255,255), low, upp, out filledAreaData,
FloodFillFlag.Link8 | FloodFillFlag.FixedRange, filledArea);
wo hue ist das Eingangsbild
hintPos ist CvPoint (10.400)
low = upp = CvScalar (10,10,10,10)
Hinweis: Das "Korruptionsmuster" ist zufällig und ändert sich jedes Mal.
OpenCvSharp OpenCV wickelt, die geschrieben wird in C++ und C. OpenCvSharp 'Mat' verwendet meist nicht verwalteten Speicher. –
@LeonidVasilyev Ja, aber das ist nicht Mat, die ich verwendet habe. Es ist die C# äquivalente CvMat ..? –
'CvMat' und' Mat' sind in OpenCV und dem verwalteten Wrapper OpenCvSharp ähnlich. Überprüfen Sie [Unterschied zwischen cvMat, Mat und IpImage] (http://stackoverflow.com/questions/11037798/difference-between-cvmat-mat-and-ipimage), [Mat versus CvMat] (https://github.com/ shimat/opencvsharp/issues/95) Diskussionen und 'Mat' OpenCvSharp [Quellcode] (https://github.com/shimat/opencvsharp/blob/bfaf35f385fd5eda49792dfd19db27bcef079f9f/src/OpenCvSharp/modules/core/Mat/Mat.cs#L47) (Beachten Sie die Klassennutzung von NativeMethods). –