OpenCV - Gaußsche Unschärfe

Bei der Gaußschen Unschärfeoperation wird das Bild mit einem Gaußschen Filter anstelle des Boxfilters gefaltet. Das Gaußsche Filter ist ein Tiefpassfilter, das die reduzierten Hochfrequenzkomponenten entfernt.

Sie können diesen Vorgang für ein Bild mit dem ausführen Gaussianblur() Methode der imgprocKlasse. Es folgt die Syntax dieser Methode:

GaussianBlur(src, dst, ksize, sigmaX)

Diese Methode akzeptiert die folgenden Parameter:

  • src - A. Mat Objekt, das die Quelle (Eingabebild) für diese Operation darstellt.

  • dst - A. Mat Objekt, das das Ziel (Ausgabebild) für diese Operation darstellt.

  • ksize - A. Size Objekt, das die Größe des Kernels darstellt.

  • sigmaX - Eine Variable vom Typ double, die die Standardabweichung des Gaußschen Kernels in X-Richtung darstellt.

Beispiel

Das folgende Programm zeigt, wie die Gaußsche Unschärfeoperation für ein Bild ausgeführt wird.

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class GaussianTest {
   public static void main(String args[]) {
      // Loading the OpenCV core library
      System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

      // Reading the Image from the file and storing it in to a Matrix object
      String file ="C:/EXAMPLES/OpenCV/sample.jpg";
      Mat src = Imgcodecs.imread(file);

      // Creating an empty matrix to store the result
      Mat dst = new Mat();
    
      // Applying GaussianBlur on the Image
      Imgproc.GaussianBlur(src, dst, new Size(45, 45), 0);

      // Writing the image
      Imgcodecs.imwrite("E:/OpenCV/chap9/Gaussian.jpg", dst);
      System.out.println("Image Processed");
   }
}

Angenommen, das Folgende ist das Eingabebild sample.jpg im obigen Programm angegeben.

Ausgabe

Beim Ausführen des Programms erhalten Sie folgende Ausgabe:

Image Processed

Wenn Sie den angegebenen Pfad öffnen, können Sie das Ausgabebild wie folgt beobachten: