Java DIP - Anwenden des Gaußschen Filters

In diesem Kapitel wenden wir den Gaußschen Filter auf ein Bild an, das ein Bild verwischt. Wir werden die OpenCV-Funktion GaussianBlur verwenden, um den Gaußschen Filter auf Bilder anzuwenden. Es kann unter Imgproc-Paket gefunden werden. Die Syntax ist unten angegeben -

Imgproc.GaussianBlur(source, destination,Size,SigmaX);

Die Funktionsargumente werden unten beschrieben -

Sr.Nr. Argument & Beschreibung
1

source

Es ist ein Quellbild.

2

destination

Es ist ein Zielbild.

3

Size

Es ist die Gaußsche Kerngröße.

4

SigmaX

Es ist die Standardabweichung des Gaußschen Kernels in X-Richtung.

Neben der GaussianBlur-Methode gibt es weitere Methoden, die von der Imgproc-Klasse bereitgestellt werden. Sie werden kurz beschrieben -

Sr.Nr. Methode & Beschreibung
1

cvtColor(Mat src, Mat dst, int code, int dstCn)

Es konvertiert ein Bild von einem Farbraum in einen anderen.

2

dilate(Mat src, Mat dst, Mat kernel)

Es erweitert ein Bild mithilfe eines bestimmten Strukturierungselements.

3

equalizeHist(Mat src, Mat dst)

Es gleicht das Histogramm eines Graustufenbildes aus.

4

filter2D(Mat src, Mat dst, int depth, Mat kernel, Point anchor, double delta)

Es faltet ein Bild mit dem Kernel.

5

GaussianBlur(Mat src, Mat dst, Size ksize, double sigmaX)

Es verwischt ein Bild mit einem Gaußschen Filter.

6

integral(Mat src, Mat sum)

Es berechnet das Integral eines Bildes.

Beispiel

Das folgende Beispiel zeigt die Verwendung der Imgproc-Klasse zum Anwenden des Gaußschen Filters auf ein Bild.

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Size;

import org.opencv.highgui.Highgui;
import org.opencv.imgproc.Imgproc;


public class Main {
   public static void main( String[] args ) {
   
      try {
         System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
         
         Mat source = Highgui.imread("digital_image_processing.jpg",
         Highgui.CV_LOAD_IMAGE_COLOR);
         
         Mat destination = new Mat(source.rows(),source.cols(),source.type());
         Imgproc.GaussianBlur(source, destination,new Size(45,45), 0);
         Highgui.imwrite("Gaussian45.jpg", destination);
      
      } catch (Exception e) {
         System.out.println("Error:" + e.getMessage());
      }
   }
}

Ausgabe

Wenn Sie den angegebenen Code ausführen, wird die folgende Ausgabe angezeigt:

Original Bild

Wenn dieses Originalbild mit dem Gaußschen Filter der Größen 11 und 45 gefaltet wird, wird die folgende Ausgabe angezeigt.

Gaußscher Filter der Größe 11

Gaußscher Filter der Größe 45