2016-07-22 8 views
0

Ich habe ein sehr seltsames Problem, wenn ich die Gaussian Blur-Funktion von Emgu CV benutze. ein Bild Unschärfen funktioniert gut, wenn ich eine Korngröße von 1-3 verwenden, aber wenn ich eine größeren Größe, meine Anwendung beendet mit folgenden Meldung:Emgu CV "Emgu.CV.Util.CvException" bei Verwendung von GaussianBlur mit Größe> 3

Exception thrown: 'Emgu.CV.Util.CvException' in Emgu.CV.World.dll

ich in Visual Studio arbeiten, und es gibt mir nicht einmal das Standard-Ausnahme-Popup. Es wird nur beendet und wirft mich zurück zum Editor.

Dies ist der Code, den ich versucht habe:

CvInvoke.GaussianBlur(image, image, new Size(4, 4), 0, 0);

image._SmoothGaussian(4);

Beide Beispiele die gleichen Ergebnisse liefern.

Antwort

0

Die einfache Antwort ist, dass Sie für diese Methode keine gerade Zahl verwenden können, Sie dürfen nur eine ungerade und positive Zahl (1,3,5 ..... etc) verwenden, dies wird durch das Original OpenCV libraries definiert.

Die Parameter für dieses Verfahren benötigt werden, sind wie folgt:

  • src - image input;
  • dst - Ausgabebild der gleichen Größe und des gleichen Typs wie src.
  • ksize - Gauß-Kernel-Größe. ksize.width und ksize.height können abweichen, aber beide müssen positiv und ungerade sein. Oder sie können Nullen sein und dann werden sie aus Sigma * berechnet.
  • sigmaX - Standardabweichung des Gaußschen Kerns in X-Richtung
  • sigmaY - Standardabweichung des Gaußschen Kerns in Y-Richtung. wenn beide Sigmas Nullen sind, werden sie aus ksize.width und ksize.height berechnet
  • borderType - Pixel Extrapolation Methode
Verwandte Themen