OpenCV - Desenfoque gaussiano
En la operación de Desenfoque gaussiano, la imagen se convoluciona con un filtro gaussiano en lugar del filtro de caja. El filtro gaussiano es un filtro de paso bajo que elimina los componentes de alta frecuencia que se reducen.
Puede realizar esta operación en una imagen utilizando el Gaussianblur() método del imgprocclase. A continuación se muestra la sintaxis de este método:
GaussianBlur(src, dst, ksize, sigmaX)
Este método acepta los siguientes parámetros:
src - A Mat objeto que representa la fuente (imagen de entrada) para esta operación.
dst - A Mat objeto que representa el destino (imagen de salida) para esta operación.
ksize - A Size objeto que representa el tamaño del kernel.
sigmaX - Una variable del tipo double que representa la desviación estándar del kernel de Gauss en la dirección X.
Ejemplo
El siguiente programa demuestra cómo realizar la operación de desenfoque gaussiano en una imagen.
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");
}
}
Suponga que la siguiente es la imagen de entrada sample.jpg especificado en el programa anterior.
Salida
Al ejecutar el programa, obtendrá el siguiente resultado:
Image Processed
Si abre la ruta especificada, puede observar la imagen de salida de la siguiente manera: