OpenCV - Gaussian Blur


In Gaussian Blur operation, the image is convolved with a Gaussian filter instead of the box filter. The Gaussian filter is a low-pass filter that removes the high-frequency components are reduced.

You can perform this operation on an image using the Gaussianblur() method of the imgproc class. Following is the syntax of this method −

GaussianBlur(src, dst, ksize, sigmaX)

This method accepts the following parameters −

  • src − A Mat object representing the source (input image) for this operation.

  • dst − A Mat object representing the destination (output image) for this operation.

  • ksize − A Size object representing the size of the kernel.

  • sigmaX − A variable of the type double representing the Gaussian kernel standard deviation in X direction.


The following program demonstrates how to perform the Gaussian blur operation on an 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

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

Assume that following is the input image sample.jpg specified in the above program.

Sample Image


On executing the program, you will get the following output −

Image Processed

If you open the specified path, you can observe the output image as follows −

Gaussian Blur