Procesamiento de imágenes en Java: mejora de la nitidez

requisitos previos:

 Consejo: Se recomienda usar eclipse para el mismo, ya que es fácil de usar y configurar.

Aquí, usaremos un filtro gaussiano . Este filtro reduce el ruido en la imagen y hace que se vea mejor (o con mayor resolución). Siga el requisito previo de instalar OpenCV y configurar según el sistema operativo en su máquina local para escribir código, ya que importaremos bibliotecas. Entonces, analicemos los métodos anteriores necesarios para mejorar la nitidez. 

Método 1: GaussianBlur(): Este método reside en el paquete Imgproc de OpenCv. 

Sintaxis: 

Imgproc.GaussianBlur(source, destination, new Size(0, 0), sigmaX)

Parámetros:

  • Imagen de origen
  • Imagen de destino
  • Tamaño del núcleo gaussiano
  • Desviación estándar del núcleo gaussiano en la dirección X

Método 2: addWeighted(): este método reside en el paquete Core de OpenCV. 

Sintaxis: 

Core.addWeighted(InputArray src1, alpha, src2, beta, gamma, OutputArray dst)

Parámetros:

  • Primera array de entrada
  • Peso de los primeros elementos de la array
  • Segunda array de entrada del mismo tamaño y número de canal que src1
  • Peso de los elementos de la segunda array
  • Escalar agregado a cada suma
  • Array de salida que tiene el mismo tamaño y número de canales que las arrays de entrada

Método 3: imread(): se utiliza para leer imágenes como objetos Mat que OpenCV representa. 

Sintaxis: 

Imgcodecs.imread(filename);

Parámetros: Nombre de archivo del archivo de imagen. Si la imagen está en otro directorio, se debe mencionar la ruta completa de la imagen.

Método 4: imwrite():  se utiliza para escribir objetos Mat en un archivo de imagen. 

Sintaxis: 

Imgcodecs.imwrite(filename, mat_img);

Parámetros:

  • Nombre de archivo del archivo de imagen. Si la imagen está en otro directorio, se debe mencionar la ruta completa de una imagen.
  • Objeto mat resultante.

Implementación: La imagen de entrada es la siguiente:

Ejemplo

Java

// Java Program to Enhance Sharpness in An Image
// Using OpenCV Library
 
// Importing package module
package ocv;
 
// Importing require classes
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;
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Try block to check for exceptions
        try {
 
            // For proper execution of native libraries
            // Core.NATIVE_LIBRARY_NAME must be loaded
            // before calling any of the opencv methods
            System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
 
            // Reading the input image from local directory
            // by creating object of Mat class
            Mat source = Imgcodecs.imread(
                "E://input.jpg",
                Imgcodecs.CV_LOAD_IMAGE_COLOR);
           
            Mat destination
                = new Mat(source.rows(), source.cols(),
                          source.type());
 
            // Filtering
            Imgproc.GaussianBlur(source, destination,
                                 new Size(0, 0), 10);
            Core.addWeighted(source, 1.5, destination, -0.5,
                             0, destination);
 
            // Writing output image to directory in the local
            // system
            Imgcodecs.imwrite("E://output.jpg",
                              destination);
        }
 
        // Catch block to handle exceptions
        catch (Exception e) {
 
            // Display message when exception occurs
            System.out.print("Exception/s Occurred")
        }
    }
}

Producción:

Nota: observe una pequeña mejora en la resolución

Este artículo es una contribución de Pratik Agarwal . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *