How to convert a colored image to grayscale using Java OpenCV library?


The cvtColor() method of the Imgproc class changes/converts the color of the image from one to another. This method accepts three parameters −

  • src − A Matrix object representing source.

  • dst − A Matrix object representing the destination.

  • code − An integer value representing the color of the destination image.

To convert a colored image to grayscale you need to pass Imgproc.COLOR_RGB2GRAY as the third parameter to this method.

Example

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class ColorToGrayscale {
   public static void main(String args[]) throws Exception {
      //Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      //Reading the image
      Mat src = Imgcodecs.imread("spiderman.jpg");
      //Creating the empty destination matrix
      Mat dst = new Mat();
      //Converting the image to grey scale
      Imgproc.cvtColor(src, dst, Imgproc.COLOR_RGB2GRAY);
      //Instantiating the Imagecodecs class
      Imgcodecs imageCodecs = new Imgcodecs();
      //Writing the image
      imageCodecs.imwrite("colortogreyscale.jpg", dst);
      System.out.println("Image Saved");
   }
}

Input

Output

Updated on: 08-Apr-2020

956 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements