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 -