Tutorialspoint.dev

Image Processing using OpenCV in Java | Set 13 (Brightness Enhancement)

In this article we will learn how to enhance brightness of an image using OpenCv library. The brightness of an image can be enhanced by multiplying each pixel of the image with an alpha value and then adding a beta value to it.
At first we need to setup OpenCV for java, we recommend to use eclipse for the same since it is easy to use and setup. For installation refer here

Methods required for brightness enhancement:

  1. convertTo(destination, rtype, alpha, beta) : This method resides in Mat package of OpenCv.
    Syntax:

    sourceImage.convertTo(destination, rtype, alpha, beta);
    parameters:
    destination: is the destination image
    rtype:  is the desired output matrix type
    alpha:  is optional scale factor multiplied 
    to each pixel of source image
    beta:  it is optional beta value added to the scaled values.
  2. imread() – This method is used to read images as Mat objects which are rendered by OpenCV.
    Syntax:

    Imgcodecs.imread(filename);
    parameters:
    filename: filename of the image file.If the image is 
    in another directory whole path of image must be mentioned.
    
  3. imwrite() – This method is used to write Mat objects to image file.
    Syntax:



    Imgcodecs.imwrite(filename, mat_img);
    parameters:
    filename: filename of the image file.If the image is 
    in another directory whole path of image must be mentioned.
    mat_img: resultant mat object.
    
package ocv;
  
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
  
public class Main {
   static int width;
   static int height;
   static double alpha = 1;
   static double beta = 50;
     
   public static void main( String[] args ) {
     
      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 );
  
         // input image
         Mat source =  
          Imgcodecs.imread("E://input.jpg", Imgcodecs.CV_LOAD_IMAGE_COLOR);
         Mat destination = new Mat(source.rows(), source.cols(), source.type());
  
         // applying brightness enhacement
         source.convertTo(destination, -1, alpha, beta);
  
         // output image
         Imgcodecs.imwrite("E://output.jpg", destination);
           
      } catch (Exception e) {
         System.out.println("error: " + e.getMessage());
      }
   }
}

Note: The code will not work in online ide since it requires image in hard drive.

Input.jpg

Alpha = 1, Beta = 50

Output.jpg

Alpha = 2, Beta = 50

Output.jpg

Alpha = 2, Beta = 25

Output.jpg

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



This article is attributed to GeeksforGeeks.org

You Might Also Like

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter