requisitos previos:
- Procesamiento de imágenes en Java: lectura y escritura
- Procesamiento de imágenes en Java: obtener y establecer píxeles
- Procesamiento de imágenes en Java: conversión de imágenes en color a imágenes en escala de grises
- Procesamiento de imágenes en Java: conversión de imagen en color a imagen negativa
- Procesamiento de imágenes en Java: conversión de imágenes de color a rojo, verde y azul
- Procesamiento de imágenes en Java: conversión de imagen a color a imagen sepia
- Procesamiento de imágenes en Java: creación de una imagen de píxeles aleatorios
- Procesamiento de imágenes en Java: creación de una imagen espejo
- Procesamiento de imágenes en Java – Detección de rostros
- Procesamiento de imágenes en Java: marca de agua de una imagen
- Procesamiento de imágenes en Java: cambio de orientación de la imagen
- Procesamiento de imágenes en Java: mejora del contraste
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