Procesamiento de imágenes en Java: mejora del brillo

requisitos previos:

El brillo de una imagen se puede mejorar multiplicando cada píxel de la imagen con un valor alfa y luego añadiéndole un valor beta. 

Mejorar el brillo de una imagen usando Java

Primero, necesitamos configurar OpenCV para Java, recomendamos usar eclipse para lo mismo, ya que es fácil de usar y configurar. Ahora analicemos un método específico. utilizados para mejorar el brillo son los siguientes:

Método 1: convertTo(destination, rtype, alpha, beta): Reside en el paquete Mat de OpenCV. 

Sintaxis: 

sourceImage.convertTo(destination, rtype, alpha, beta);

Parámetros:

  • Imagen de destino
  • Tipo de array de salida deseada
  • Factor de escala opcional multiplicado por cada píxel de la imagen de origen
  • Valor beta opcional agregado a los valores escalados.

Método 2: 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 2: imwrite(): este método se usa 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: Ilustraremos las imágenes junto con las imágenes de salida para mostrar la diferencia.  

Java

// Java Program to Enhance Brightness of An Image
// Using OpenCV Library
 
// Importing package module to this code fragment
package ocv;
// Importing required classes
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
 
// Main class
public class GFG {
 
    // Initializing variables for an image
    static int width;
    static int height;
    static double alpha = 1;
    static double beta = 50;
 
    // 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);
 
            // Getting input image by
            // creating object of Mat class from local
            // directory
            Mat source = Imgcodecs.imread(
                "E://input.jpg",
                Imgcodecs.CV_LOAD_IMAGE_COLOR);
 
            Mat destination
                = new Mat(source.rows(), source.cols(),
                          source.type());
 
            // Applying brightness enhancement
            source.convertTo(destination, -1, alpha, beta);
 
            // Output image
            Imgcodecs.imwrite("E://output.jpg",
                              destination);
        }
 
        // Catch block to handle exceptions
        catch (Exception e) {
 
            // Print the exception on console
            // using getMessage() method
            System.out.println("error: " + e.getMessage());
        }
    }
}

Producción: 

Brightness Enhancement

Caso de uso 1: imagen de entrada 

Alfa = 1, Beta = 50 

Salida 1:  

Alfa = 2, Beta = 50 

Salida 2:  

Alfa = 2, Beta = 25 

Salida 3:

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 *