Java DIP - Application du filtre gaussien

Dans ce chapitre, nous appliquons un filtre gaussien à une image qui brouille une image. Nous allons utiliser la fonction OpenCV GaussianBlur pour appliquer un filtre gaussien aux images. Il peut être trouvé sous le paquet Imgproc. Sa syntaxe est donnée ci-dessous -

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

Les arguments de la fonction sont décrits ci-dessous -

N ° Sr. Argument et description
1

source

C'est l'image source.

2

destination

C'est l'image de destination.

3

Size

C'est la taille du noyau gaussien.

4

SigmaX

C'est l'écart type du noyau gaussien dans la direction X.

Outre la méthode GaussianBlur, il existe d'autres méthodes fournies par la classe Imgproc. Ils sont décrits brièvement -

N ° Sr. Méthode et description
1

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

Il convertit une image d'un espace colorimétrique à un autre.

2

dilate(Mat src, Mat dst, Mat kernel)

Il dilate une image en utilisant un élément structurant spécifique.

3

equalizeHist(Mat src, Mat dst)

Il égalise l'histogramme d'une image en niveaux de gris.

4

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

Il convolve une image avec le noyau.

5

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

Il brouille une image à l'aide d'un filtre gaussien.

6

integral(Mat src, Mat sum)

Il calcule l'intégrale d'une image.

Exemple

L'exemple suivant illustre l'utilisation de la classe Imgproc pour appliquer un filtre gaussien à une image.

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

Production

Lorsque vous exécutez le code donné, la sortie suivante est vue -

Image originale

Lorsque cette image originale est convoluée avec le filtre gaussien de taille 11 et 45, la sortie suivante est vue.

Filtre gaussien de taille 11

Filtre gaussien de taille 45