How to alter the brightness of a grey scale image?

The equalizeHist() method of the Imgproc class accepts a greyscale image and equalizes its histogram, which will, in turn, normalizes the brightness and increases the contrast of the given image. This method accepts two parameters −

  • A Mat object representing the source image (greyscale).

  • A Mat object to save the result.


Following Java program reads a colored image as greyscale, saves it, normalizes the brightness and increases the contrast of the given image and saves it.

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class HstExample {
   public static void main(String args[]) {
      //Loading the OpenCV core library
      String input = "D://images//sunset.jpg";
      //Reading the Image from the file
      Mat source = Imgcodecs.imread(input, Imgcodecs.IMREAD_GRAYSCALE );
      //Creating an empty matrix to store the result
      Mat dst = new Mat(source.rows(),source.cols(),source.type());
      Imgcodecs.imwrite("D://images//Grey_scale.jpg", source);
      //Increasing the contrast
      Imgproc.equalizeHist(source, dst);
      //Writing the image
      Imgcodecs.imwrite("D://images//increasing_contrast.jpg", dst);
      HighGui.imshow("output image", dst);

Greyscale image

Resultant image