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: