OpenCV - Flou gaussien

Dans l'opération Flou gaussien, l'image est convoluée avec un filtre gaussien au lieu du filtre boîte. Le filtre gaussien est un filtre passe-bas qui supprime les composantes haute fréquence qui sont réduites.

Vous pouvez effectuer cette opération sur une image en utilisant le Gaussianblur() méthode de la imgprocclasse. Voici la syntaxe de cette méthode -

GaussianBlur(src, dst, ksize, sigmaX)

Cette méthode accepte les paramètres suivants -

  • src - Un Mat objet représentant la source (image d'entrée) de cette opération.

  • dst - Un Mat objet représentant la destination (image de sortie) de cette opération.

  • ksize - Un Size objet représentant la taille du noyau.

  • sigmaX - Une variable de type double représentant l'écart type du noyau gaussien dans la direction X.

Exemple

Le programme suivant montre comment effectuer l'opération de flou gaussien sur une image.

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");
   }
}

Supposons que ce qui suit est l'image d'entrée sample.jpg spécifié dans le programme ci-dessus.

Production

Lors de l'exécution du programme, vous obtiendrez la sortie suivante -

Image Processed

Si vous ouvrez le chemin spécifié, vous pouvez observer l'image de sortie comme suit -